美文网首页
18、 左右内连接的区别

18、 左右内连接的区别

作者: 小碧小琳 | 来源:发表于2018-12-07 11:29 被阅读0次

举个例子
参加同学聚会,分别有男生、女生表。其中右边表示家庭的编号。

一、左连接

1.1、以boy表为准做左连接

现在,主持人说,所有男士站到舞台上,带上自己的配偶(没有配偶的拿块牌子,上面写null)
问:屌丝上不上舞台呢?没有对应的行(配偶)怎么办?
答:上(因为是所有男士),没有的话用null补齐。

按照上面的想法,结果如下:
其中“高富帅”需要占两行才能写的完。

若是想,高富帅一行,对应的女生姓名字段存两个,或者把第二名女生舍弃,这都是不允许的。一个列里存储的值,是最小的单位不能拆分的,所以不能存两个值。

所以,五个男生,不一定就是五行结果集。。

按照上面所举栗子,我们用sql创建两个表:

然后插入数据。得到这样两张表:

我们用左连接,on条件是other相同,得到结果集如下:

可见与我们分析推测的一样。

这种情况就是左连接: 男生 left join on 女生。

1.2、以girl表为准做左连接。

现在,我们让女生上台,领对象,没有对象的用null补齐。
注意下表中,select查询时中我们把boy表放在了左边,其实在left join 时,还是以girl表为准。

在以boy在左边用left join时,屌丝是null补齐。以girl在左边用left join 时,宝钗没有配偶,用null补齐。

————————————————————————————————————
左右连接是可以互换的
A left join B 等价于 B right join A
————————————————————————————————————

二、右连接

还是上面的题目,同样是女生上台带另一半,没有的用Null补齐,但是不允许用左连接来做。

也比较简单。

用右连接的话,只需要:男 right join 女即可。如下图:

可见结果是一样的,不必要可以的区分左右连接。

额外建议:

出于移值时兼容性方面的考虑,尽量用左连接。

三、内连接

内连接的特点:
主持人又说,所有有配偶的男生/女生,走到舞台上来,结果会是神马样?
这时候,屌丝,宝钗都不会上台了。应该是如下的结果:

如果从集合的角度看,内连接就是左右连接的交集

四、外连接

也就是,左右连接的并集。但是在MySQL中不支持,在SQL server中支持。

相关文章

  • 18、 左右内连接的区别

    举个例子参加同学聚会,分别有男生、女生表。其中右边表示家庭的编号。 一、左连接 1.1、以boy表为准做左连接 现...

  • MySQL --- SQL基础知识

    内连接与左(右)外连接的区别 总结: 内连接:查询左右表都有的数据,不要左/右中NULL的那一部分 左连接:即以左...

  • SQL左右连接中的on and和on where的区别

    SQL左右连接中的on and和on where的区别 原先一直对SQL左右连接中的on and和on where...

  • 左右内等连接查询

    转:https://blog.csdn.net/mr_tim/article/details/51135377 新...

  • 左连接、右连接、内连接的区别

    面试的时候问到这个知识点,一时没想起来,今天总结一下。比如有A和B两张表,分别代表姓名和职业。A表: B表: 现在...

  • 外连接

    内、外连接区别   内连接是保证两个表中所有行都满足连接条件,而外连接则不然。外连接不仅包含符合连接条件的行,还包...

  • MySQL中的多表连接查询

    多表连接分为交叉连接,内连接,外连接,自连接。连接条件分为等值连接,非等值连接(区别就是连接符号是否是“=”) 学...

  • MySQL—内连接和外连接区别

    关键词:内外连接区别 区别 内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留外连接(ou...

  • MySQL 中的各种 JOIN

    本文主要介绍 SQL 标准中定义的各种连接的意义和区别,例如,交叉连接(CROSS JOIN)、内连接(INNER...

  • 内连接、外连接、交叉连接区别

    在之前,我对MSSQL中的内连接和外连接所得出的数据集不是很清楚。这几天重新温习了一下SQL的书本,现在的思路应该...

网友评论

      本文标题:18、 左右内连接的区别

      本文链接:https://www.haomeiwen.com/subject/cdvacqtx.html