【发布时间】:2012-05-31 09:18:11
【问题描述】:
这行得通
SELECT DISTINCT b.b_id
FROM b INNER JOIN c
ON b.b_id=c.b_id
WHERE c.active='yes' AND b.featured='no'
当结果应该返回 0 行时,这将返回一个 null 行,其中 count = 0
SELECT DISTINCT b.b_id, COUNT(c.c_id) AS count
FROM b INNER JOIN c
ON b.b_id=c.b_id
WHERE c.active='yes' AND b.featured='no'
我做错了吗?
【问题讨论】:
-
当您使用聚合函数 (
COUNT) 时,您需要GROUP BY非聚合列。 MySQL 甚至不应该允许该查询,但它确实会导致不可预知的行为...... -
啊,好的,所以我删除了 DISTINCT 并在查询末尾附加了 b.b_id 的 GROUP。对吗?
标签: mysql