[LeetCode-SQL-Easy]183. 从不订购的客户

2019-04-09  本文已影响0人  AceCream佳

题目:

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

Customers 表:

Id Email
1 Joe
2 Henry
3 Sam
4 Max

Orders 表:

Id CustomerId
1 3
2 1

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

Customers
Henry
Max

分析:

此题应该用连接,那么使用左连接,把customer放左边。
逐步尝试:

SELECT
     *
FROM
    customers LEFT JOIN orders on customers.Id=orders.CustomerId

会发现

Id Name Id(1) CustomerId
3 Sam 1 3
1 Joe 2 1
4 Max null null
2 Henry null null

仔细看其中规律
Max和Henry明显是在customer的Id里面有,但是order的CustomerId里面没有的。
那么稍加变化就能写出结果:

SELECT NAME AS
    Customers 
FROM
    customers
    LEFT JOIN orders ON customers.Id = orders.CustomerId 
WHERE
    orders.CustomerId IS NULL
上一篇下一篇

猜你喜欢

热点阅读