我有几个表(粗体表示主键):
舞者(舞者姓名、性别、年龄)
舞蹈(舞者姓名、dvd_id、歌曲标题)
Dvd(dvd_id, song_title,成本)
歌曲(舞者姓名,歌曲标题,流派)
启动(舞者名称,dvd_id,年份)
我想选择其歌曲一起出现在一个或多个 dvd 中的舞者对,并且每对只打印一次。
这是我能得到的最接近的结果,它两次打印出同一对,但它们的名称在不同的列中:
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