Leetcode-SQL学习计划-SQL入门-584:寻找用户推荐人

建表语句:

Create table If Not Exists Customer (id int, name varchar(25), referee_id int)
Truncate table Customer
insert into Customer (id, name, referee_id) values ('1', 'Will', 'None')
insert into Customer (id, name, referee_id) values ('2', 'Jane', 'None')
insert into Customer (id, name, referee_id) values ('3', 'Alex', '2')
insert into Customer (id, name, referee_id) values ('4', 'Bill', 'None')
insert into Customer (id, name, referee_id) values ('5', 'Zack', '1')
insert into Customer (id, name, referee_id) values ('6', 'Mark', '2')

答案:

select name
from customer
where 
    ifnull(referee_id,0)<>2

select name 
from customer
where id  not in 
(select id 
from customer where  referee_id =2)

或:包含空值的不等于<=>,覆盖空值

SELECT name FROM customer WHERE not referee_Id <=> 2;

或:or

# Write your MySQL query statement below
select name
from customer
where 
    referee_id is null
or 
    referee_id!=2

或:union all

union会去除重复的行,当用户name相同但id不同的时候,用union会丢失结果.

换成union all即可

SELECT name
FROM customer
WHERE referee_id IS NULL

UNION ALL

SELECT name
FROm customer
WHERE referee_id != 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值