【发布时间】:2017-04-04 03:51:41
【问题描述】:
我有 3 张桌子:
- 产品:存储产品的总数量
- 订单:存储订单及其状态
- Order_items:存储每个订单中销售的产品和数量
我需要找到一种方法来列出这些产品的总数量和待处理数量(客户支付但尚未发货的产品,换句话说,状态为paid = 1 的产品数量,shipped = 0,cancelled = 0)。我想出了这个 SQL 命令:
SELECT
products.sku,
SUM(order_items.quantity) AS quantity_pending,
quantity_total
FROM
order_items
RIGHT JOIN
products ON products.sku = order_items.sku
RIGHT JOIN
orders ON orders.id = order_items.order_id
AND paid = 1 AND shipped = 0 AND cancelled = 0
WHERE
products.sku = 'test'
OR products.sku = 'test-a'
OR products.sku = 'test-b'
GROUP BY
products.sku
期待结果是这样的:
但实际上我得到了这个:
这意味着mysql仅在pending_quantity > 0时才显示结果。有没有办法达到我的预期?我不介意多次查询。
【问题讨论】:
标签: mysql