问题标题有点模糊,因为我不知道如何简短地解释它。

我有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/

10-16 06:20