在 SQL UPDATE 查询中聚合:简洁的解决方案
在数据库操作中,基于聚合函数更新表值可能会带来挑战。让我们探讨一种常见场景,其中目标是将一个表中的值设置为另一个表中的值之和。
考虑以下查询:
UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3
虽然直观,但此查询由于两个关键限制,将会失败:SET 不支持 SUM 之类的聚合函数,并且 UPDATE 查询中不允许 GROUP BY。
To解决这个问题,我们可以利用子查询来计算聚合总和,然后在 UPDATE 查询中使用更新后的值。
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
在这个精炼查询中:
通过使用此方法,您可以成功执行聚合更新 SQL 并实现所需的数据操作结果。
以上是如何使用 SQL 中另一个表的值总和更新表?的详细内容。更多信息请关注PHP中文网其他相关文章!