私はいくつかのテーブルを持っています (太字は主キーを意味します):
Dancer( ダンサー名,性別, 年齢)
Dance(ダンサー名, dvd_id,曲名)
DVD( dvd_id, song_title, cost)
Song(ダンサー名, 曲名,ジャンル)
Launch(ダンサー名, dvd_id,年)
1 つまたは複数の DVD に歌が一緒に登場するダンサーのペアを選択し、各ペアを 1 回だけ印刷したいと考えています。
これは私が得ることができる限り近く、同じペアを 2 回出力しますが、それらの名前は異なる列に表示されます。
select distinct DANCER1.dancer_name, DANCER2.dancer_name, count(*) as count
from Dancer DANCER1, Dancer DANCER2, Dance DANCE1, Dance DANCE2
where DANCER1.dancer_name = DANCE1.dancer_name
and DANCER2.dancer_name = DANCE2.dancer_name
and DANCER1.dancer_name <> DANCER2.dancer_name
and DANCE1.dvd_id = DANCE2.dvd_id
group by DANCER1.dancer_name, DANCER2.dancer_name;
したがって、取得する代わりに
Tom Jon
Jon Tom
Bob Sam
Sam Bob
ただ欲しい
Tom Jon
Bob Sam