我试图用一个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