183. 从不订购的客户
难度:简单
参考题解:图解SQL面试题:查找不在表里的数据
题目描述
解题思路
我第一个想到的就是not in,感觉还挺简单的啊,但是评论里面又说not in效率太低了…
1、使用NOT IN
select Name as Customers
from Customers where Id not in
(select CustomerId from Orders)
2、使用左外连接
select Name as Customers
from Customers left join Orders on Customers.Id = Orders.CustomerId
where Orders.Id is null;
3、使用NOT EXISTS
select c.name as Customers
from Customers c
where not exists (select 1 from Orders o where o.CustomerId = c.Id);