LeetCode 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       |
+-----------+

解题:

SELECT c.Name 'Customers' FROM Customers c LEFT JOIN Orders o ON o.CustomerId = c.Id WHERE CustomerId IS NULL;

官方解答:

1.使用子查询和 NOT IN 子句

SELECT Customers.Name AS 'Customers' FROM Customers WHERE Customers.Id NOT IN (SELECT CustomerId FROM Orders);

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注