2016-03-01 46 views
0

我試圖選擇某人在此表中說出完全相同的語言(法語,意大利語和俄語)。它顯然應當只返回瑪雅:SQL選擇與具有重複ID的多個項目的完全匹配

PERSON  LANG  
---------- ---------- 
Ann  English 
Ann  Japanese 
Bill  English 
Bill  Japanese 
Bill  Russian 
Chris  English 
Chris  Russian 
David  English 
David  Japanese 
David  Russian 
Ernie  English 
Ernie  French  
Ernie  Japanese 
Fumie  Japanese 
Fumie  Korean  
Maja  French  
Maja  Italian 
Maja  Russian 

我可以理解,因爲名字都複製不工作的代碼和該查詢返回0的結果:

SELECT DISTINCT PERSON 
FROM SPEAKS 
WHERE LANG = 'French' 
AND LANG = 'Russian' 
AND LANG = 'Italian'; 

任何幫助,將不勝感激因爲我無法弄清楚如何處理這些重複的名字。

+0

你不能使用和多選「=」..因爲如果lang是'法國'它絕對不能成爲別人..所以使用「或」或IN – Roy

回答

2

試試這個:

SELECT PERSON 
FROM SPEAKS 
WHERE LANG IN('French', 'Russian', 'Italian') 
GROUP BY PERSON 
HAVING COUNT(DISTINCT LANG) = 3 

DISTINCTCOUNT內只需要在情況下,你可以有重複,即關係到一個人一次以上相同的語言。

+0

這沒有竅門!非常感謝! – FruitAbuser

相關問題