LeetCode Customers Who Never Order
Problem
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.
Table: Customers.
1
2
3
4
5
6
7
8
+----+-------+
| Id | Name |
+----+-------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
+----+-------+
Table: Orders.
1
2
3
4
5
6
+----+------------+
| Id | CustomerId |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
Using the above tables as example, return the following:
1
2
3
4
5
6
+-----------+
| Customers |
+-----------+
| Henry |
| Max |
+-----------+
即找到没有订单的客户
MySQL
解法一
1
2
3
SELECT Name AS Customers FROM Customers c WHERE c.Id NOT IN (SELECT CustomerId FROM Orders);
解法二
1
2
SELECT Customers FROM (SELECT c.Name AS Customers, o.Id AS oid FROM Customers c LEFT JOIN Orders o ON c.Id = o.CustomerId) AS r WHERE r.oid IS NULL;
分析
无
本文由作者按照 CC BY 4.0 进行授权