首页 > 数据库 > mysql教程 > 如何使用 SQL 中另一个表的值总和更新表?

如何使用 SQL 中另一个表的值总和更新表?

Linda Hamilton
发布: 2024-12-18 02:37:14
原创
226 人浏览过

How Can I Update a Table with the Sum of Values from Another Table in SQL?

在 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
登录后复制

在这个精炼查询中:

  • 子查询计算 table2.field3 中每个唯一值的聚合总和。
  • 更新后的结果(存储为 field2Sum)使用连接回 table1公共列字段3。
  • JOIN 条件确保将table2 中的SUM 值分配给table1 中正确的对应行。

通过使用此方法,您可以成功执行聚合更新 SQL 并实现所需的数据操作结果。

以上是如何使用 SQL 中另一个表的值总和更新表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板