请考虑以下查询:
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,LIMITor子句时?GROUP BY - 有价值的
artist$styles记录只有三个,为什么要计数?p_id14 为什么如果我添加一个
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