Mysql从两个表中选择两个SUM

时间:2017-04-26 10:58:03

标签: mysql sql join left-join outer-join

我正在尝试从两个表中选择SUMed数据。 这就是他们的样子。

表1:

products | revenue|
------------------|
product1 | 10     |
product2 | 20     |
product1 | 20     |

表2:

products | revenue|
------------------|
product1 | 40     |
product2 | 30     |
product2 | 40     |

所以查询应该像这样总结:

products | revenue|
------------------|
product1 | 70     |
product2 | 90     |

我已经尝试了这个和其他一些查询,但它们不正确。

SELECT  Table1.products, Table1.SUM(`revenue`), Table2.SUM(`revenue`)
FROM    Table1
JOIN    Table2
ON      Table1.products = Table2.products
group by Table1.products;

你能帮助我,在这种情况下什么是正确的查询?感谢。

2 个答案:

答案 0 :(得分:2)

我建议使用union all然后使用group by

select product, sum(revenue)
from ((select product, revenue from table1) union all
      (select product, revenue from table2)
     ) tt
group by product;

这将确保所有产品都在结果集中,即使是只在一个表中的产品。

答案 1 :(得分:1)

使用UNION ALL和SUM聚合函数:

 SELECT products , SUM(revenue) revenue
 FROM
 (
   SELECT products  , revenue
   FROM table1
   UNION ALL
   SELECT products  , revenue
   FROM table2
 ) A
 GROUP BY products