我正在尝试将数据库中的字段更新为其连接值的总和:
我有这个示例数据:
ID refer_id my_reflink s1 s2 m1 m2
-----------------------------------------------
1 a 1 7
2 a b 2 8
3 a c 3 9
4 d 4 0
5 b e 5 1
6 c f 6 2
我需要一个将此结果提供给 s1 和 s2 的查询。
ID refer_id my_reflink s1 s2 m1 m2
----------------------------------------------------
1 a 5 17 1 7
2 a b 5 1 2 8
3 a c 0 0 3 9
4 d 4 0
5 b e 6 2 5 1
6 e f 0 0 6 2
结果是
- s1 = refer_id 的 m1 之和 = 每个 ID 的 my_reflink
- s2 = refer_id 的 m2 总和 = 每个 ID 的 my_reflink
所以对于ID1,它将是
- s1 = 5 因为 ID 2 和 ID 3 有 ID 1 的
my_reflink
和 m1 = 2 m1 = 3 - s2 = 17 因为 ID 2 和 ID 3 有 ID 1 的
my_reflink
和 m2 = 8 m2 = 9
最佳答案
更新/连接语法可能会有所不同,具体取决于所使用的 RDBMS,但以下查询适用于 MySql
UPDATE someTable t
JOIN (SELECT refer_id, SUM(m1) sum_m1, SUM(m2) sum_m2
FROM someTable
GROUP BY refer_id) s ON s.refer_id = t.my_reflink
SET s1 = COALESCE(sum_m1, 0), s2 = COALESCE(sum_m2,0)
关于mysql - 如何在同一表中的 SQL 连接中使用值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55001250/