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 |
解法:
SELECT Name AS Customers FROM Customers
WHERE Id NOT IN (
SELECT CustomerId AS Id FROM Orders
)
另一个解法
左连接只含有自己原有的部分。
SELECT Name AS Customers FROM Customers
LEFT JOIN Orders ON Customers.Id = Orders.CustomerId
WHERE CustomerId IS NULL