create
table
ifnot
exists customers (id int
, name varchar
(255))
create
table
ifnot
exists orders (id int
, customerid int
)truncate
table customers
insert
into customers (id, name)
values
('1'
,'joe'
)insert
into customers (id, name)
values
('2'
,'henry'
)insert
into customers (id, name)
values
('3'
,'sam'
)insert
into customers (id, name)
values
('4'
,'max'
)truncate
table orders
insert
into orders (id, customerid)
values
('1'
,'3'
)insert
into orders (id, customerid)
values
('2'
,'1'
)
某**包含兩個表,customers
表和orders
表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。
customers
表:
+----+-------+
| id | name |
+----+-------+
| 1 | joe |
| 2 | henry |
| 3 | sam |
| 4 | max |
+----+-------+
orders
表:
+----+------------+
| id | customerid |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
根據以上輸入,你的查詢應返回以下結果:
+-----------+
| customers |
+-----------+
| henry |
| max |
+-----------+
思路:要找出從不訂購的使用者,從不訂購的使用者指沒有出現在orders
表中的使用者,那麼也就是說只要篩選出不在orders
表中的資料就好。
方法1:使用 not in + 子查詢
select c.name as customers
from customers as c
where c.id notin(
select customerid from orders
)
耗時:113ms
方法2:使用left join
select c.name as customers
from customers as c
left
join orders as o
on c.id = o.customerid
where o.id is
null
耗時:163ms 力扣183 從不訂購的客戶
力扣183.從不訂購的客戶 某 包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。customers 表 id name 1 joe 2 henry 3 sam 4 max orders 表 id customerid 1 3 2 1 例...
LeetCode 183 從不訂購的客戶
題意 某 包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。customers 表 id name 1 joe 2 henry 3 sam 4 max orders 表 id customerid 1 3 2 1 例如給定上述 你的查詢應...
資料庫題目 從不訂購的客戶
某 包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。customers 表 id name 1 joe 2 henry 3 sam 4 max orders 表 id customerid 1 3 2 1 例如給定上述 你的查詢應返回 ...