JOINクエリから複数回表示されるレコードを抽出したいのですが、それらはグループ化されません。
表の例:
tbl_names
id Name
1 Mark
2 John
3 Jane
4 Paul
tbl_locations
id Location
1 Berlin
2 Frankfurt
2 Stockholm
3 Helsinki
3 Madrid
3 London
4 Paris
IDは外部キーです。
これで、クエリの結果は次のようになります。
id Name Location
2 John Frankfurt
2 John Stockholm
3 Jane Helsinki
3 Jane Madrid
3 Jane London
つまり、最初のテーブルのレコードがJOIN句の結果に複数回表示されるすべてのJOINレコード。
もちろん、グループ化することもできます。
SELECT tbl_names.id, tbl_names.Name, tbl_locations.Location FROM tbl_names
INNER JOIN tbl_locations ON (tbl_names.id = tbl_locations.id)
GROUP BY tbl_names.id
HAVING COUNT(tbl_names.id) > 1
私が欲しいのは、それらをまったくグループ化しないことです。副節を試してみましたNOT IN
が、非常に遅く、希望する結果が得られません。
どんな悟りも歓迎されます。