即使它不应该在表中找到一行,也要返回一行

时间:2011-11-17 13:45:02

标签: mysql resultset

这是我的SQL

SELECT items.name, items.id, items.price,
COUNT(cart_items.itemId) AS quantity
FROM `cart_items`
LEFT JOIN `items`
ON cart_items.itemId = items.id
WHERE cart_items.cartId = '2'

cart_items中没有cartId为2的行。但是,结果集仍然显示一个空行。为什么?我的查询出了什么问题?

(如果我设置cart_items.cartId ='1'(表中有cartId为1的行),那么一切都会正常。

对不起,我对这种MySQL很陌生。

1 个答案:

答案 0 :(得分:4)

因为您使用COUNT()(聚合函数)。您应该将计数项目移动到子查询。