sql中if语句和left join的共同使用查询当前表中哪个用户是新用户

sql中if语句和left join的共同使用解决数据需求

要做一个需求,查出所需id哪一个是在2021-02-17之后注册的,basic_id表中是一列id,这一列id表示我们所关注的id,最终结果仅需要展示这一列id。

在这里插入图片描述

is_new表中是描述每个用户都是在哪个日期注册的,这里面包含了所有用户,也就是说basic_id表仅仅是这个表的子集,这时候我想查看id_set表中,哪个id是在2021-02-17之后注册的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DIPKkjZZ-1619664904050)(C:\Users\lizhihan_sx\AppData\Roaming\Typora\typora-user-images\image-20210429105157807.png)]

代码:


SELECT  A.id, if(B.id is null, 0, 1) as is_new_or_not
from basic_id A
left join (
			select id from is_new where dt >= '2021-02-17'
		) B on B.id=A.id

使用left join的方式将两个表join起来,这时候B表就包含了原本的数据和A中的补充数据,但是A表中的补充数据在当前的B中是为null的,再使用if判断,如果为null标记为0,不为null标记为1,就可以解决了!

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Se4zbTTZ-1619664904053)(C:\Users\lizhihan_sx\AppData\Roaming\Typora\typora-user-images\image-20210429105115847.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值