1. 程式人生 > 其它 >183. 從不訂購的客戶(SQL)

183. 從不訂購的客戶(SQL)

技術標籤:SQLsqlleetcode

一/題目描述

某網站包含兩個表,Customers 表和 Orders 表。編寫一個 SQL 查詢,找出所有從不訂購任何東西的客戶。
Customers 表:
±—±------+
| Id | Name |
±—±------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
±—±------+
Orders 表:
±—±-----------+
| Id | CustomerId |

±—±-----------+
| 1 | 3 |
| 2 | 1 |
±—±-----------+
例如給定上述表格,你的查詢應返回:
±----------+
| Customers |
±----------+
| Henry |
| Max |
±----------+

二、題解
方法一:使用左查詢和null值過濾

select 
    `Name` Customers
from
    Customers left join Orders on Customers.Id = Orders.
CustomerId where Orders.CustomerId is null

方法二:使用子查詢和 NOT IN 子句

SELECT 
    `Name` Customers
FROM
    Customers 
WHERE
    Id not in (SELECT CustomerId FROM Orders)

在這裡插入圖片描述