Heim >Datenbank >MySQL-Tutorial >Warum erzeugt meine MySQL UPDATE JOIN-Abfrage einen Kompilierungsfehler?
MySQL-Problem mit der Abfrage zum Aktualisieren von Join-Tabellen
Beim Versuch, Tabellen mithilfe einer MySQL-Join-Abfrage zu aktualisieren, ist bei einem Benutzer ein Kompilierungsfehler aufgetreten. Hier ist die Abfrage, die sie verwendet haben:
UPDATE b SET b.mapx = g.latitude, b.mapy = g.longitude FROM business AS b INNER JOIN business_geocode g ON b.business_id = g.business_id WHERE (b.mapx = '' OR b.mapx = 0) AND g.latitude > 0
Trotz der Richtigkeit der Feldnamen konnte die Abfrage nicht kompiliert werden.
Lösung:
Upon Bei der Analyse der Abfrage wurde festgestellt, dass der Fehler behoben werden konnte, indem die Tabellenaliasnamen vor den Spaltennamen platziert wurden, wie gezeigt unten:
UPDATE business AS b INNER JOIN business_geocode AS g ON b.business_id = g.business_id SET b.mapx = g.latitude, b.mapy = g.longitude WHERE (b.mapx = '' or b.mapx = 0) and g.latitude > 0
Aktualisierung:
Nachdem der Benutzer bestätigt hatte, dass die Abfrage immer noch zu einem Syntaxfehler führte, wurden Testtabellen erstellt, um die Syntax zu überprüfen. Die geänderte Abfrage wurde mit MySQL 5.5.8 getestet und erzeugte keine Syntaxfehler, wie unten zu sehen:
mysql> UPDATE business AS b -> INNER JOIN business_geocode AS g ON b.business_id = g.business_id -> SET b.mapx = g.latitude, -> b.mapy = g.longitude -> WHERE (b.mapx = '' or b.mapx = 0) and -> g.latitude > 0; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0
Das obige ist der detaillierte Inhalt vonWarum erzeugt meine MySQL UPDATE JOIN-Abfrage einen Kompilierungsfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!