次のクエリを検討してください。
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
質問は次のとおりです。
- テーブルに4つの行があり、クエリに適用される、、、または句がない場合に、
artist
テーブルから1つの行だけを選択するのはなぜですか?WHERE
HAVING
LIMIT
GROUP BY
- 価値のあるレコードは3つしかないのに
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のバグでしょうか?Community5.5.25aを実行しています