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
Libérer: 2024-11-29 18:44:11
original
247 Les gens l'ont consulté

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

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

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal