以下是我的表格:
表1
-----------------
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
-----------------
我想知道如何在Value
,table1
和table2
上的table3
列上汇总到Result
表?
我写的查询是:
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在table1和table2中不相同
答案 0 :(得分:4)
以下是使用union all
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
部分确保不会自动删除重复行),最后将组合结果分组并照常汇总。 / p>