如何从三个mysql表中SUM列?

时间:2015-11-10 03:58:18

标签: mysql sql sum

以下是我的表格:

表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  
   -----------------

我想知道如何在Valuetable1table2上的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中不相同

1 个答案:

答案 0 :(得分:4)

以下是使用union all

获取每个ID总和的方法
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>