Maison > base de données > tutoriel mysql > Pourquoi ma requête MySQL UPDATE JOIN génère-t-elle une erreur de compilation ?

Pourquoi ma requête MySQL UPDATE JOIN génère-t-elle une erreur de compilation ?

DDD
Libérer: 2024-12-07 09:29:16
original
810 Les gens l'ont consulté

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

Problème MySQL avec la requête de mise à jour des tables de jointure

Lors d'une tentative de mise à jour des tables à l'aide d'une requête de jointure MySQL, un utilisateur a rencontré une erreur de compilation. Voici la requête qu'ils ont utilisée :

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
Copier après la connexion

Malgré l'exactitude des noms de champs, la requête n'a pas pu être compilée.

Solution :

Sur en analysant la requête, il a été constaté que l'erreur pouvait être résolue en plaçant les alias de table avant les noms de colonnes, comme indiqué ci-dessous :

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
Copier après la connexion

Mise à jour :

Après que l'utilisateur a confirmé que la requête entraînait toujours une erreur de syntaxe, des tables de test ont été créées pour vérifier la syntaxe. La requête modifiée a été testée sur MySQL 5.5.8 et n'a produit aucune erreur de syntaxe, comme indiqué ci-dessous :

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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal