2016-03-07 120 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