SQL检查列A中的数据是否存在于列B中

时间:2018-08-15 09:01:56

标签: sql sql-server sql-server-2014

我有一个员工表

EmployeeID | Name | EmployeeEmail | ManagerEmail


每个ManagerEmail应该属于一位经理级员工,他们的主要电子邮件为EmployeeEmail

我想检查是否有ManagerEmail不属于任何员工。


我正在使用的DBMS是Microsoft SQL Server Management Studio 2014。

我可以知道该怎么做吗?

谢谢。

3 个答案:

答案 0 :(得分:3)

您似乎想要:

select e.*
from Employee e
where e.ManagerEmail is not null and
      not exists (select 1 
                  from Employee e1 
                  where e1.EmployeeEmail = e.ManagerEmail
                 );

编辑:基于OP的注释添加了附加的WHERE子句。

答案 1 :(得分:0)

由于这是一个非常笼统的问题,因此答案也同样笼统。使用以下方法之一:

  • 禁止进入
  • 不存在
  • 反加入

似乎没有一个想到这些,所以您可能想学习所有这些。我认为您至少应该学习如何应用前三个。

答案 2 :(得分:0)

尝试以下查询-:

select ManagerEmail from YourTableName 
where ManagerEmail not in (select EmployeeEmail from YourTableName)

SQL Server