【问题标题】:Mysql Select with two SUM from two tablesMysql 从两个表中选择两个 SUM
【发布时间】:2017-04-26 10:58:03
【问题描述】:

我正在尝试从两个表中选择 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;

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

【问题讨论】:

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


    【解决方案1】:

    我建议使用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;
    

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

    【讨论】:

      【解决方案2】:

      使用 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多