left join、right join的区别和面试中的场景

left 和right的区别


面试中一个很常见的场景,说说left和right join的区别,
张口就来 left 是左表为基准表,已左表为准;right是右表为基准表,已右表为准。
But来了一个场景题,傻眼了,答错了。
A1表 A表

##显示四条数据,right右表 a1为基础表,对应的结果应该为 
#1-1-2-null ;
#1-1-2-null;
#2-2-2-null;
#2-2-2-null;
select * from a right join a1 on a.a=a1.a1;
##显示五条数据,left左表 a为基础表
#a表1的结果对应a1表里有两条数据
#a表2的结果对应a1表里有两条数据
#a表3的结果对应a1表里无数据,但因为是基表,所以还会显示
#1-1-2-null ;
#1-1-2-null;
#2-2-2-null;
#2-2-2-null;
#3-null-null-null;
select * from a left join a1 on a.a=a1.a1;





最后再重新来个定义吧,免得基础不扎实翻车

left join(左联接)返回左表中的所有记录和右表中与左表关联的记录,如果右表没有关联的记录,则=左表记录,否则就>左表记录;

right join(右联接)返回右表中的所有记录和左表中与之关联的记录,如果左表没有关联的记录,则=右表记录,否则就>右表记录;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值