J'ai deux tables et je veux mettre à jour les champs dans T1 pour toutes les lignes dans une jointure à gauche.
Pour un exemple simple, mettez à jour toutes les lignes de l'ensemble de résultats suivant:
SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
Le manuel MySQL indique que:
Les instructions UPDATE à plusieurs tables peuvent utiliser n'importe quel type de jointure autorisé dans les instructions SELECT, telles que LEFT JOIN.
Mais je ne trouve pas la syntaxe appropriée pour cela dans la mise à jour documentée sur plusieurs tables.
Quelle est la syntaxe appropriée?
la source
La même chose peut être appliquée à un scénario où les données ont été normalisées, mais vous voulez maintenant qu'une table ait des valeurs trouvées dans une troisième table. Ce qui suit vous permettra de mettre à jour une table avec des informations d'une troisième table qui est aimée par une deuxième table.
Cela serait utile dans le cas où vous aviez des utilisateurs et des groupes et que vous souhaitiez qu'un utilisateur puisse ajouter sa propre variante du nom de groupe, donc à l'origine, vous voudriez importer les noms de groupe existants dans le champ où se trouve l'utilisateur va pouvoir le modifier.
la source
Je mettrai à jour le texte du champ dans le tableau A avec
et venez à ce résultat:
où un seul champ du tableau B est accepté, mais j'arriverai à ce résultat:
la source
la source
la source