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

Warum erzeugt meine MySQL UPDATE JOIN-Abfrage einen Kompilierungsfehler?

DDD
Freigeben: 2024-12-07 09:29:16
Original
797 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage