Mettre à jour une table MySQL dans une instruction multi-jointure
Lorsque vous traitez plusieurs jointures dans MySQL, comprendre les différentes syntaxes de mise à jour d'une jointure le tableau est crucial. Contrairement à SQL Server, MySQL utilise une approche distincte.
Problème :
Effectuer une opération de mise à jour sur une table impliquée dans une série de jointures peut s'avérer difficile lorsque la valeur souhaitée la table n'est pas la première dans l'ordre de jointure.
Exemple Requête :
Considérons une requête hypothétique :
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;
Solution :
Dans MySQL, la syntaxe UPDATE avec JOIN fonctionne différemment . La table à mettre à jour n'est pas explicitement spécifiée dans la déclaration ; au lieu de cela, il est déduit de la clause SET. Par conséquent, la requête correcte serait :
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;
Points clés :
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!