MYSQL SUM 数量与连接

标签 mysql sql join left-join right-join

我的 SQL 查询有问题。当我使用多个 JOIN 时,结果是错误的。

SELECT name, stock,SUM(order_items.qty),
SUM(shipping_items.qty) FROM shipping_items

JOIN mnm_products 
ON mnm_products.id = shipping_items.product_id

JOIN order_items
ON mnm_products.id = order_items.product_id

GROUP BY mnm_products.id

当我只使用时

SELECT name, stock,
SUM(shipping_items.qty) FROM shipping_items

JOIN mnm_products 
ON mnm_products.id = shipping_items.product_id
GROUP BY mnm_products.id

没错。但是当我使用 2 个连接时。两者的结果是相同的。 有人可以帮我吗?

最佳答案

您可能最好使用相关子查询:

select p.*,
       (select sum(si.qty)
        from shipping_items si
        where si.product_id = p.id
       ) as shipping_items,
       (select sum(oi.qty)
        from order_items oi
        where oi.product_id = p.id
       ) as order_items
from mnm_products p;

关于MYSQL SUM 数量与连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156756/

相关文章:

mysql - 使用 ActiveRecord 延迟删除 MySQL 中的临时表

mysql - 我应该用什么代替 IN?

python - 合并 Pandas 中的 2 个数据帧不合并第二个数据帧

MYSQL连接三个表并按连接日期分组

javascript - 无法从nodejs + node-mysql 中的模块获取返回

php - 如何在mysql中存储顺序数据

mysql - 如何将一列数据显示为固定值,而另一列正常显示,两列来自同一列数据?数据库

sql - 减去两个 SUM GROUP BY 字段

Java Sql 从列中选择月份

sql - 如何安全地将 varchar(255) 转换为 int?