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