左连接 右连接 全链接 内连接 详解

题目查询下列两表的对应关系



全链接 :相当于集合的并集 全部都会联合一次


 

在查找对应关系的时候



A表10000行,B表10000行,都不算大.

但是全相乘,在内存中生成一个非常大的数据. 10000*10000行.
另外:索引没利用


虽然全链接很常用 很多人用,但是它的效率极低,生成n*m行数据再筛选出来


左链接:

左连接的语法:

假设A表在左,不动,B表在A表的右边滑动.

A表与B表通过一个关系来筛选B表的行.

语法:

A left join B on 条件  条件为真,B表对应的行,取出

A left join B on 条件 

这一块,形成的也是一个结果集,可以看成一张表 设为C

既如此,可以对C表作查询,自然where,group ,having ,order by ,limit 照常使用




以男生为基准,女生表从上往下逐个匹配,由于次方法用索引,所以效率高很多!

没有另一半的,用NULL补齐



以女生为基准,生表从上往下逐个匹配


注意,a left join b,并不是说a表的就一定在左边,只是说在查询数据时,以a表为准


右连接:

用右连接. 刚才是 女生 left join 男
用右连接,只需 男 right join 女


 就是一个相对的关系 你在我左边  那么 我就在你右边  明白了左链接  反过来就明白右连接了!



左右连接是可以互换的

A left join B, 就等价于 B right join A

注意:既然左右连接可以互换,尽量用左连接,出于移植时兼容性方面的考虑.



内连接

如果从集合的角度

A inner join B

和 left join /rightjoin的关系

答: 内连接是左右连接的交集



1  女生左链接   中本来有的屌丝->null 没有了

2 男生左链接 中本来有的宝钗 ->null 没有了

内连接是左右连接的交集



经典左链接面试题


按以上的形式查询





A left join B on 条件 

这一块,形成的也是一个结果集,可以看成一张表 设为C

既如此,可以对C表作查询,自然where,group ,having ,order by ,limit 照常使用



 

可以无限左链接 并且可以把它看成一个表 然后进行having 筛选

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值