问题标题有点模糊,因为我不知道如何简短地解释它。
我有3张桌子:
Project (projectid, name, description)
Person(personid, name, description)
ProjectPerson(projectid, personid)
Project和Person通过ProjectPerson表具有多对多关系
我想创建一个SQL查询来查找不在任何Project中的所有人员。
我有一个解决方案:获取所有人,获取ProjectPerson中的所有条目,并删除ProjectPerson中存在的人员条目。
但是,这似乎有点愚蠢。有人可以建议我更好的方法吗?提前致谢
最佳答案
您可以使用left join
执行此操作。然后,在where
子句中检查没有匹配项:
select p.*
from Person p left outer join
ProjectPerson pp
on p.personid = pp.personid
where pp.personid is null
关于mysql - MySQL查询找到未映射的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18548127/