LeetCode Customers Who Never Order
阿新 • • 發佈:2018-12-23
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.
+----+-------+ | Id | Name | +----+-------+ | 1 | Joe | | 2 | Henry | | 3 | Sam | | 4 | Max | +----+-------+
Table: Orders.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
Using the above tables as example, return the following:
+-----------+
| Customers |
+-----------+
| Henry |
| Max |
+-----------+
即找到沒有訂單的客戶
MySQL
解法一
SELECT Name AS Customers FROM Customers c WHERE c.Id NOT IN (SELECT CustomerId FROM Orders);
解法二
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;
分析
無