2016-03-07 102 views
0

我的代碼簡單(?)的MySQL集團通過查詢

select 
    (select ifnull(sum(registerAmount),0) 
    from register where register.orderID = orders.orderID) as theTotal 
from orders 
left join register on orders.orderID = register.orderID 
where orders.customerID = 17 and invSent = true 

顯示8行... 5含有0-3沒有。

如果我添加

group by orders.customerID 

我得到一個包含零一行。

我如何得到一行包含總數?

+0

left OUTER join? – Randy

回答

0

如果你只想要一行所有的東西,只需做一個簡單的INNER JOIN並選擇總和即可。

SELECT IFNULL(SUM(registerAmount), 0) as theTotal 
FROM orders 
INNER JOIN register ON orders.orderID = register.orderID 
WHERE orders.customerID = 17 and invSent = true 
+0

這實際上是我試圖調試的更大查詢的一部分。 – Sheldon

+0

對不起,我不是一個心靈讀者,如果我不知道它是什麼,我不能讓我的答案適合更大的範圍。 – Barmar

+0

哦...正在尋找心靈讀者。 – Sheldon