我試圖用一個SQL查詢得到5個不同表中的結果的總和。我有5個表,每個表可能包含屬於訂單的記錄。 5個表中所有記錄的總和決定了總訂單價格。MySQL計算選擇不使用空的子選擇
搜索在這個論壇上,我想出了以下查詢:
SELECT
OrderTotal.total + Shipping.amount + Service.amount - Gift.amount - RMA.total as TotalCosts
FROM
(SELECT SUM(price * amount) AS total FROM order WHERE order_id=123456) OrderTotal
(SELECT amount FROM shipping WHERE order_id=123456) Shipping,
(SELECT amount FROM service WHERE order_id=123456) Service,
(SELECT SUM(price * amount) AS total FROM rma WHERE order_id=123456) RMA,
(SELECT amount FROM gift WHERE order_id=123456) Gift
我現在面臨的問題是,當例如最後一個SELECT返回0行,不返回總TotalCosts。
如何解決這個問題?
奧凱,我對我的問題回答如下。不過,我現在需要在遍歷所有訂單的循環中執行此操作。所以不要給它'order_id = 123456',而是列出所有的訂單。 – Timo002 2013-03-12 07:34:16