LeetCode(183):从不订购的客户 Customers Who Never Order(SQL)

2019.12.10 LeetCode 从零单刷个人笔记整理(持续更新)

github:https://github.com/ChopinXBP/LeetCode-Babel

传送门:从不订购的客户

某网站包含两个表,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 Name AS 'Customers'
FROM Customers c
LEFT OUTER JOIN (
    SELECT DISTINCT CustomerID AS 'cId'
    FROM Orders
) o
ON c.Id = o.cId
WHERE cId IS NULL;

SELECT Name AS 'Customers'
FROM Customers c
WHERE c.Id NOT IN (
    SELECT DISTINCT CustomerID AS 'cId'
    FROM Orders
);

SELECT c.Name AS 'Customers'
FROM Customers c
WHERE NOT EXISTS (
    SELECT 1
    FROM Orders o
    WHERE o.CustomerID = c.Id
);



#Coding一小时,Copying一秒钟。留个言点个赞呗,谢谢你#

发布了246 篇原创文章 · 获赞 316 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_20304723/article/details/103474665
今日推荐