mysql - 从不同的表中计算产品和价格总和

标签 mysql select count sum

我有这三个表:

Products
ID      NAME
1       Notebook
2       Keyboard

Base1
PRODUCT_ID    PRICE
1             2
1             2
1             2
2             3

Base2
PRODUCT_ID    PRICE
1             2
1             2
1             2
1             2
2             3
2             3  

我需要的是获取所有产品的列表,其中包含出现次数和过程总和,如下所示:

ID     NAME       Base1_count  Base1_SumPrice     Base2_count  Base2_SumPrice
1      Notebook   3            6                  4            8
2      Keyboard   1            3                  2            6

如何编写正确的 MySQL 查询?

最佳答案

嘿,你可以通过以下查询得到答案

SELECT product_base1.product_id ID
, product_base1.product_name NAME
, product_base1.base1_count Base1_count
, product_base1.base1_price Base1_SumPrice
, COUNT(b2.id) Base2_count
, SUM(b2.price) Base2_SumPrice
FROM ( 
SELECT p.id product_id 
        , p.name product_name
        , COUNT(b.id) base1_count
        , SUM(b.price) base1_price
FROM products p
LEFT OUTER
JOIN base1 b ON p.id = b.id
GROUP BY p.id 
    ) 
    product_base1
LEFT OUTER
JOIN base2 b2 ON b2.id = product_base1.product_id
GROUP BY product_base1.product_id

关于mysql - 从不同的表中计算产品和价格总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029580/

相关文章:

php - 即使用户没有填写表单中的所有条件,也会从 mySQL 返回结果

mysql - SQL根据两列返回不同的行

php - 如何将其转换为简单的键值对?

java - 有没有更有效的方法来计算每个连续字母在字符串中出现的次数? (java)

php - 在另一个表中查找结果并在网页上打印出来

java - 如何提交从jsp页面中的下拉列表中选择的选项以执行mysql查询

Jquery:如何根据事件从其他列表设置文本框的值?

MySQL 查询 SELECT GREATEST int row VALUE between limits

mysql - 选择出现次数为零的每月计数

r - ggplot2:如何总结计数? stat_summary 或 stat_bin