Heim >Datenbank >MySQL-Tutorial >Warum erzeugt meine MySQL UPDATE JOIN-Abfrage einen Kompilierungsfehler?

Warum erzeugt meine MySQL UPDATE JOIN-Abfrage einen Kompilierungsfehler?

DDD
DDDOriginal
2024-12-07 09:29:16770Durchsuche

Why Does My MySQL UPDATE JOIN Query Produce a Compile Error?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn