2013-08-31 75 views
0

問題標題有點模糊,因爲我不知道如何簡單解釋它。MySQL查詢找到未映射的結果

我有3個表:

Project (projectid, name, description) 
Person(personid, name, description) 
ProjectPerson(projectid, personid) 

項目和人要經過ProjectPerson表

我想創建一個SQL查詢來發現所有的人,是不是在任何項目一個多對多的關係。

我有一個解決方案:獲取所有人,獲取ProjectPerson中的所有條目並刪除ProjectPerson中存在的人員條目。

但是,它似乎有點愚蠢。任何人都可以給我一個更好的方法嗎?在此先感謝

回答

2

你可以用left join做到這一點。然後,檢查爲where子句中沒有匹配:

select p.* 
from Person p left outer join 
    ProjectPerson pp 
    on p.personid = pp.personid 
where pp.personid is null 
0

我發現谷歌的解決方案。謝謝閱讀。

select * 
from Person 
where Person.personid not in (select personid from ProjectPerson)