MySQL相关子查询

标签 mysql sql inner-join

难以阐明这个相关的子查询。我有两张虚构的 table ,foo 和 bar。 foo 有 foo_id 和 total_count 两个字段。 bar 有两个字段,seconds 和 id。

我需要为每个单独的 id 汇总 bar 中的秒数,并更新 foo 中的 total_count。 id 是 bar 中 foo_id 的外键。

我试过类似的东西但运气不佳:

UPDATE foo f1 set total_count = (SELECT SUM(seconds) from bar b1 INNER JOIN foo f2     WHERE b1.foo_id = f2.id) WHERE f1.foo_id = bar.id;

最佳答案

UPDATE foo f1
SET total_count = (SELECT SUM(seconds)
FROM bar b1 WHERE b1.id = f1.foo_id)

您应该可以在子查询中访问适当的 foo id,因此无需加入表中。

关于MySQL相关子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223115/

相关文章:

php - 如何合并两个 mysql 查询的数据

php - 多个表连接并仅使用一个 Blade 获得结果

mysql - 将 COUNT 与 CASE 结合使用,如何对结果列进行排序?

mysql - 当第二条记录可能不存在时使用 JOIN

php - 如何将自定义查询转换为 CDbCriteria

sql - Mongo DB Laravel 中的排序依据、分组依据

sql - 谁能告诉我这个查询是否正确?

mysql - SQL查询内连接得到2个项目

sql-server - 两个值之间的内连接

mysql - 无法在mysql 5.7上远程连接centos