Maison >base de données >tutoriel mysql >Comment mettre à jour une table jointe dans MySQL lorsque la table cible n'est pas la première ?

Comment mettre à jour une table jointe dans MySQL lorsque la table cible n'est pas la première ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 18:44:11301parcourir

How to Update a Joined Table in MySQL When the Target Table Isn't First?

Mise à jour d'une table jointe dans MySQL avec l'ordre inversé des tables

La tâche de mise à jour d'une table impliquée dans une instruction de jointure peut être difficile lorsque le le tableau souhaité ne se trouve pas au début. Dans MySQL, contrairement à SQL Server, la syntaxe des mises à jour multi-tables diffère, résolvant ce problème.

Considérez l'exemple suivant où l'objectif est de mettre à jour la table « b » :

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

Dans MySQL, la syntaxe de l'instruction UPDATE avec une clause JOIN ne précise pas la table à mettre à jour. Au lieu de cela, il est implicitement déterminé par la clause SET.

Par conséquent, pour obtenir la mise à jour souhaitée, la syntaxe révisée suivante peut être utilisée :

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

Il est important de noter que UPDATE avec JOIN la syntaxe ne fait pas partie de la spécification SQL standard, et MySQL et Microsoft SQL Server ont implémenté leurs propres variantes.

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