2016-12-01 76 views
2

基本上我有兩個表:MySQL的選擇是否屬於ID的所有值出現在另一個表

rid|element  id|element 
1 | x  1 | a  
1 | y  2 | b  
1 | z  3 | c 
1 | a  4 | d 
2 | b  5 | e 
2 | c  6 | x 
2 | d  7 | z 
3 | e   
3 | z 
3 | x 

,我想回到rid = 2, 3但不1因爲元素y不存在第二個表。我認爲答案在於我使用的加入類型,但我還沒有真正能夠圍繞這些

+0

可能重複[MySQL LEFT JOIN 3 tables](http://stackoverflow.com/questions/16222097/mysql-left-join-3-tables) – CGritton

回答

2

我會與左加入第一個表到第二個,然後通過rid彙總檢查第一個表中的每個element事實上都與第二個表中的element相匹配。

SELECT t1.rid 
FROM table1 t1 
LEFT JOIN table2 t2 
    ON t1.element = t2.element 
GROUP BY t1.rid 
HAVING SUM(CASE WHEN t2.element IS NULL THEN 1 ELSE 0 END) = 0 
相關問題