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!