您的位置:首页 > 其它

183. 从不订购的客户

2019-08-02 19:23 92 查看

183. 从不订购的客户

题目描述

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

Customers 表:

Id Name
1 Joe
2 Henry
3 Sam
4 Max

Orders 表:

Id CustomerId
1 3
2 1

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

Customers
Henry
Max

实现

实现1

在Customers表中查找顾客,它的id不在Orders表的CustomerId中

select Name Customers
from Customers
where id not in(select CustomerId from Orders);

实现2

左连接,先左连接Customers和Orders表,on条件是顾客的id = orders表的CustomerId,生成一个顾客的id = orders表的CustomerId的临时表;where条件是临时表中取出Orders的id是NULL的客户。

select c.Name Customers
from Customers c left join Orders o
on c.Id = o.CustomerId
where o.Id IS NULL;

SQL JOIN 中 on 与 where 的区别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: