首页 > 解决方案 > 使用字段作为选择标准在 2 个表之间查找不匹配

问题描述

我以下表为例。

表格1

企业标识
1 史密斯 约翰
2 琼斯 鲍勃
3 公民

表 2

企业标识 请求ID 请求描述
1 1
1 2 文凭
1 3 电话
2 1
2 3 电话
3 1
3 2 文凭
3 3 电话

我想返回表 1 中没有表 2 中没有文凭的条目的所有记录,例如 ReqID = 2

此查询将所有记录返回给我,但不仅仅是 Bob Jones 的记录。因为他们有其他记录,ReqID <> 2. 有没有办法对它们进行分组来实现这一点?

SELECT Table1.EMPID,
FROM Table1 LEFT JOIN Table2 ON Table1.EMPID = Table2.EMPID
WHERE Table2.ReqID <> 2;

标签: sqltsql

解决方案


使用exists

SELECT t1.*,
  FROM Table1 t1
 WHERE NOT EXISTS 
      (select 1 from Table2 t2 
        where t1.EMPID = T2.EMPID and t2.reqdesc = 'Diploma');

推荐阅读