0
我有3個表:右使SUM連接查詢顯示兩條記錄有結果或不
- 產品:存儲產品,每
-
總數量
- 訂單:存儲訂單及其狀態
- 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時才顯示結果。有沒有辦法達到我的預期?我不介意多個查詢。
感謝您對優化我的查詢,但將總結一切,包括已完成的訂單(支付,運送),而不是隻有筆定單(支付,未發貨)。我期望的將會是test = 2,test-a = 0,test-b = 0 – mee
@mee即使添加了你想要的邏輯之後,結果集也不會改變,因爲只有命令#'1'有一個產品sku ,sku是'test'。 –
我的預期是'test = 2,test-a = 0,test-b = 0'。我用原始查詢的問題是,雖然它顯示正確的pending_qty,但不顯示具有零pending_qty的產品。 – mee