2016-07-04 9 views
-1

Guten Abend!MySql Update Trigger mit Unterabfrage (# 1093 Fehler)

Ich habe einen Auslöser, um einen Datensatz aus meiner Tabelle "Kommentar" namens Vote zu aktualisieren. Der Trigger wird ausgelöst, wenn ich einen Wert namens "vote" in meiner "vote" -Tabelle aktualisiere. Für die Trigger-Abfrage muss ich alle 'vote' Datensätze in der Tabelle 'vote' zusammenfassen und dann in 'comment' die Zeile mit 'comment.id = vote.pid' während 'vote.uid = user.id' aktualisieren. .

Trigger-Funktion:

DROP TRIGGER IF EXISTS `CommentVoteOnUpdate`;CREATE DEFINER=`root`@`localhost` TRIGGER `CommentVoteOnUpdate` AFTER UPDATE ON `vote` FOR EACH ROW UPDATE comment 
SET comment.vote = (
    SELECT SUM(vote.vote) 
    FROM vote, comment, user 
    WHERE comment.id = pid AND uid = user.id 
) 
WHERE comment.id = new.pid 

Wenn ich möchte einen Wert in der 'Stimme' Tabelle aktualisieren, dann habe ich die folgende Fehlermeldung:

„Table 'Kommentar' zweimal angegeben wird, die beide als Ziel für 'UPDATE' und als separate Quelle für Daten "

Hat jemand von euch eine Lösung für mein Problem?

+0

Thx löste es !! –

Antwort

0

Sie müssen Ihrer Kommentartabelle (in der Unterabfrage) einen Alias ​​geben. Weitere Informationen finden Sie unter this question.