请考虑以下查询:
SELECT artist.id, COUNT(DISTINCT artist$styles.v_id)
FROM artist
LEFT JOIN artist$styles ON artist$styles.p_id = artist.id
这是我得到的结果:
id count
1 4
问题是:
- 为什么它只从
artist
表中选择一行,当它有 4 行并且没有应用于查询的WHERE
,HAVING
,LIMIT
or子句时?GROUP BY
- 有价值的
artist$styles
记录只有三个,为什么要计数?p_id
1
4
为什么如果我添加一个
GROUP BY
子句我会得到正确的结果?SELECT artist.id, COUNT(DISTINCT artist$styles.v_id) FROM artist LEFT JOIN artist$styles ON artist$styles.p_id = artist.id GROUP BY artist.id ---- id count 1 3 2 1 3 3 4 1
这一切对我来说毫无意义。这可能是MySQL的错误吗?我正在运行社区 5.5.25a