某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers 表:
Id | Name |
---|---|
1 | Joe |
2 | Henry |
3 | Sam |
4 | Max |
Orders 表:
Id | CustomerId |
---|---|
1 | 3 |
2 | 1 |
例如给定上述表格,你的查询应返回:
Customers |
---|
Henry |
Max |
解题思路:
首先,两表连接,顾客表和订单表可以通过 a.id = b.customerid左连接,
条件就是在order表中的订单id是否为null,
为null就表明这个b从来没有买过东西,
可以考虑把他账号删了
完整sql
select a.name as Customers from
Customers a left join orders b
on a.id = b.customerid
where b.id is null