Sql 如何查找表中的哪些记录在另一个表中没有相应的记录

Sql 如何查找表中的哪些记录在另一个表中没有相应的记录,sql,database,linq,Sql,Database,Linq,我的数据库中有两个表。一个叫人,一个叫团队。一个人可以在一个团队中。 我如何检查以查找所有不在使用LINQ或sql的团队中的人员???您的意思是这样的 select * from person p join team t on p.TeamId = t.TeamId where p.TeamId <> 3 这两个查询都将返回ID为3的团队以外的所有人员 一个人可以在一个团队中 这使我猜测在person的表中有一个TeamID FK字段,该字段可以有空值 如何检查以查找所有

我的数据库中有两个表。一个叫人,一个叫团队。一个人可以在一个团队中。
我如何检查以查找所有不在使用LINQ或sql的团队中的人员???

您的意思是这样的

 select *
 from person p
 join team t
 on p.TeamId = t.TeamId
 where p.TeamId <> 3
这两个查询都将返回ID为3的团队以外的所有人员

一个人可以在一个团队中

这使我猜测在person的表中有一个TeamID FK字段,该字段可以有空值

如何检查以查找所有不在团队中的人员

这将为您提供团队以外的所有人员

select *
from person
where TeamID is null

你如何表现一个人与团队的联系。您是否亲自使用teamID字段?如果是这样,当一个人不在团队中时,你会怎么做?保持为空

select * from person where teamID is null
将其设置为-1

select * from person where teamID == -1
也许你有一个人和一个团队的交叉表(这会很奇怪,因为你说一个人只能在一个团队中)。如果是的话


或者,如果你有其他的东西,请告诉我们。

只有那些能说明问题所在的东西才可以提出一个恰当的问题,给出示例表数据和示例结果。你需要更具体一些,如果我们不允许使用LINQ或SQL,我们应该使用什么?@Richard:他似乎在问一个使用这两种方法的解决方案。我认为任何一个都是允许的。你可以使用linq或SQL。。。这只是如何找到不在团队中的人这是一个通用的解决方案,但如果社区知道您的表定义,那么我们可以更具体一些。他在寻找一个根本不在团队中的人,而不是不在特定团队中的人。我想我只是错过了阅读问题:)显然不是!看起来你打了勾;)如果我真的得到了复选标记,它就被删除了:(如果它不包括“幻数”方法,我会投票给它。我不是建议它——但是,如果他使用它,那就是选择的方式。
select * from person where teamID == -1
SELECT * FROM person LEFT OUTER JOIN person_team
 ON (person.id = person_team.personID)
 WHERE person_team.personID IS NULL