Sql语句,join常见用法

left join :将两表相联,交集部分显示,左表一定是全显示,右表没有数据的显示null
on作为两表关联条件
select a.*
    if(b.user_id is not null,"YES","NO") as flag
from all_users a
left join black_list black_list
on a.id=b.id;    

left semi join :两表相联,取两表的交集数据,只显示左表字段,不显示右表字段,只显示两表交集的左表的字段数据
select *
from all_users a
left semi join black_list b 
on a.id=b.id;

left anti join :两表相联,取非交集部分    将在海量数据集表里面,剔除掉无关业务的其他数据
select *
from all_users a
left anti join black_list b 
on a.d=b.id;

full join :两表关联,并显示两表的全部数据    

coalesce()函数:返回第一个非空参数,解决full join出现的交叉出现null的情况

select coalesce(a.user_id , b.user_id) as user_id_new ,
       coalesce(a.amount,0)as deposit_amount,
       coalesce(b.amount,0)as deposit_amount,
from deposit a
full join debt b 
on

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值