首页 > 解决方案 > SQL 语句查找 tbl1 的唯一记录,但不存在与 tbl2 相同的记录

问题描述

我正在尝试在“c”中列出记录,而这些记录也是“o”的一部分,但不知何故,我的代码无法根据 customerNumber 工作。

select c.* 
from c 
where c.customerNumber not in (select o.customerNumber
                               from orders o 
                               inner join customers c on c.customerNumber = o.customerNumber);

我究竟做错了什么?

标签: sql

解决方案


你可以用不存在来做到这一点:

select c.* from c 
where not exists (
  select 1 
  from orders 
  where customerNumber = c.customerNumber
);

或简化您的代码:

select  c.* from c 
where c.customerNumber not in (
  select  customerNumber
  from orders
);

推荐阅读