力扣题(mysql)6.从不订购的客户(左连接)

题干:某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

Customers 表:

IdName
1Joe
2Henry
3Sam
4Max

Orders 表:

IdCustomerId
13
21

例如给定上述表格,你的查询应返回:

Customers
Henry
Max

分析:

  1. 这个题目的话,就是简单的逻辑问题,左边的表为主,利用双表连接的方法,然后再把为空的筛选出来就可以了
  2. 第二种方法是用not in 也就是官方的解答,但是貌似时间会过长

题解:

第一种方法(左连接):时长393ms

select a.name as customers from customers a left join orders b on a.id=b.customerid where b.customerid is null;

第二种方法(not in):时长1472ms

select customers.name as 'Customers'
from customers
where customers.id not in
(
    select customerid from orders
);

理解上都没什么困难的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值