0

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

我有 3 张桌子:

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

Project 和 Person 通过 ProjectPerson 表具有多对多关系

我想创建一个 SQL 查询来查找不在任何项目中的所有人。

我有一个解决方案:获取所有人,获取 ProjectPerson 中的所有条目并删除 ProjectPerson 中存在的人员条目。

然而,这似乎有点愚蠢。谁能给我一个更好的方法?提前致谢

4

2 回答 2

2

您可以使用left join. 然后,检查where子句中是否存在匹配项:

select p.*
from Person p left outer join
     ProjectPerson pp
     on p.personid = pp.personid
where pp.personid is null
于 2013-08-31T12:35:40.723 回答
0

我在谷歌上找到了解决方案。谢谢阅读。

select * 
from Person 
where Person.personid not in (select personid from ProjectPerson)
于 2013-08-31T12:36:39.460 回答