Leetcode183. 从不订购的客户
题目:
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers 表:
±—±------+
| Id | Name |
±—±------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
±—±------+
Orders 表:
±—±-----------+
| Id | CustomerId |
±—±-----------+
| 1 | 3 |
| 2 | 1 |
±—±-----------+
例如给定上述表格,你的查询应返回:
±----------+
| Customers |
±----------+
| Henry |
| Max |
±----------+
题解:
子查询:
(mysql中可以实现,但是hive中不支持子查询)
select t1.name as Customers
from Customers t1
where t1.Id not in (
select CustomerId from Orders
)
join
select t1.Name as Customers
from Customers t1
left join
Orders t2
on t1.Id = t2.CustomerId
where t2.CustomerId is null