这是完全诚实的作业的一部分,不是那么重要,但仍然如此。 所以,假设我们有以下表格:
Song Singer_prod
composer title singer sing_title
A a1 S1 b1
A a2 S3 c3
B b1 S3 c1
C c1 S1 a1
C c2 S1 a2
C c3 S3 c2
S2 a1
现在,问题是要选择那些只有一位歌手演唱过的作曲家。 例如,作曲家 B 只有一个标题, b1 ,仅由 S1 演唱。
另外,作曲家 C 写了 c1,c2,c3 ,所有歌曲只能由 S3 演唱。 这两位作曲家应该出现在结果中。
相比之下,来自作曲家的 A 歌曲, a2 仅由 S1 演唱,但 a1 是由 S1 和 S2 演唱,所以 A 不应该出现在结果中。
我尝试了无数嵌套SELECTS,GROUP BY和WHERE的组合,到目前为止没有运气。我唯一可以肯定的是,某个地方应该需要一个伯爵(歌手)= 1,但到目前为止这些都是徒劳无功的。
非常感谢任何帮助!
答案 0 :(得分:-1)
SELECT Composer, Singer FROM Song x
INNER JOIN Singer_prod y on x.title = y.sing_title
GROUP BY Composer, Singer
HAVING COUNT(Distinct Singer) = 1