如何对三个mysql表中的列求和?
这是我的桌子: 表1如何对三个mysql表中的列求和?,mysql,sql,sum,Mysql,Sql,Sum,这是我的桌子: 表1 ----------------- ID | value ----------------- 1 | 0 ----------------- 2 | 3 ----------------- 3 | 10 ----------------- 表2 ----------------- ID | value ----------------- 3 | 4 -----
-----------------
ID | value
-----------------
1 | 0
-----------------
2 | 3
-----------------
3 | 10
-----------------
表2
-----------------
ID | value
-----------------
3 | 4
----------------
5 | 6
-----------------
6 | 8
-----------------
表3
-----------------
ID | value
-----------------
7 | 7
----------------
8 | 8
-----------------
9 | 9
-----------------
结果表
-----------------
ID | value
-----------------
1 | 0
----------------
2 | 3
-----------------
3 | 14
----------------
5 | 6
-----------------
6 | 8
-----------------
7 | 7
----------------
8 | 8
-----------------
9 | 9
-----------------
我想知道如何对表1
、表2
和上的值
列求和<代码>表3
以达到结果
表
我写的查询是:
INSERT INTO result (ID, value)
SELECT ID, SUM(t1.value+ t2.value, t3.value)
FROM table1 t1, table2 t2, table3 t3
GROUP BY ID
但是它只是挂起(实际的表很大),我怀疑它是否正确,因为
ID
s在表1和表2中不一样
select id, sum(value) from (
select id, value from table1
union all select id, value from table2
union all select id, value from table3
) t group by id
union all
将每个select语句的结果组合成一个大结果(all
部分确保不会自动删除重复的行),最后,组合的结果会像往常一样进行分组和求和。这是一个交叉连接,即大型表上的笛卡尔积,所有排列。1m x 1m=1特里利昂威尔实际上这是一个模棱两可的错误1052,但你得到了理想的答案。但是如果有3个表怎么办?@Jand您可以添加额外的union all select…
额外的表对不起,我无法将其扩展到3个表,所以修改了我的问题。请你修改一下答案好吗?很有魅力,而且很快。非常感谢。