SQL查找从不订购的客户

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

Customers 表:

Id Name
1 Joe
2 Henry
3 Sam
4 Max

Orders 表:

Id CustomerId
1 3
2 1

例如给定上述表格,你的查询应返回:

Customers
Henry
Max

思路一、使用not exists

select c.Name as Customers from Customers c 

where not exists 

(select distinct o.CustomerId Id from Orders o where c.Id = o.CustomerId);

思路二、使用 not in

select c.Name as Customers from Customers c 

where c.Id not in 

(select distinct o.CustomerId Id from Orders o);

思路三、使用左连接

select c.Name as Customers from Customers c 

left join Orders o on c.Id = o.CustomerId

where o.CustomerId  is null;

你可能感兴趣的:(LeetCode)