Maison >base de données >tutoriel mysql >Comment mettre à jour correctement plusieurs tables MySQL à l'aide d'un INNER JOIN ?

Comment mettre à jour correctement plusieurs tables MySQL à l'aide d'un INNER JOIN ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-08 16:12:10985parcourir

How to Correctly Update Multiple MySQL Tables Using an INNER JOIN?

MySQL met à jour la requête des tables de jointure interne

En essayant de mettre à jour plusieurs tables à l'aide d'une jointure interne dans MySQL, les utilisateurs peuvent rencontrer des erreurs de compilation. Plus précisément, la requête suivante entraîne une erreur de compilation dans MySQL 5.0 :

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

Pour résoudre ce problème, réorganisez la requête comme suit :

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

Notez que la requête ci-dessus est syntaxiquement correct. Cependant, lors du test de la requête sur des tables existantes dans MySQL 5.5.8, aucune ligne n'a été affectée. Il pourrait s'agir d'un problème différent qui mériterait une enquête plus approfondie en fonction des données spécifiques et de la structure de la table impliquée.

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:
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