簡體   English   中英

mysql如何選擇在另一列中具有相同值且在另一表的列中具有相同值的字段?

[英]mysql How to select fields that have the same value in another column AND the same value in another table's column?

坦白地說,這是家庭作業的一部分,雖然不那么重要,但仍然如此。 因此,假設我們有以下表格:

        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的組合,但到目前為止還沒有運氣。 我唯一確定的唯一事情是,某個地方需要一個count(singer)= 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM