Requête de mise à jour SQL avec fonction d'agrégation
Cette question explore l'utilisation de fonctions d'agrégation dans les requêtes de mise à jour SQL. L'utilisateur tente de mettre à jour un champ d'une table avec la somme des valeurs d'une autre table. Cependant, leur requête ne fonctionne pas en raison de problèmes syntaxiques.
Analyse
La requête initiale présentée par l'utilisateur contient deux défauts principaux :
Solution
Pour résoudre ces problèmes, une sous-requête doit être employés. La sous-requête calculera la somme des valeurs de la deuxième table, en les regroupant par champ commun. Le résultat de cette sous-requête sera ensuite joint à la première table et utilisé pour mettre à jour le champ en conséquence.
La requête correcte :
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
Dans cette requête :
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!