SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?相关的知识,希望对你有一定的参考价值。

 SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

 

SQL的连接(join)有哪些常见形式?

sql连接查询:把多张表的列组合在一起,产生新的结果表。

联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行。

SQL JOIN 类型:

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

 

1.内连接(inner  join)
只有两个表相匹配的行才能在结果集中显示出来
2.左连接(left  join)
以左表为主,左表所有的数据都会在结果集中出现,右表根据左表对应的数据显示,与左表匹配的数据会显示,没有匹配的地方会显示为空
3.右连接(right  join)
以右表为主,右表所有的数据都会在结果集中出现,左表根据左表对应的数据显示,与左表匹配的数据会显示,没有匹配的地方会显示为空
4完全连接(full  join)
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行 包含基表的数据值。

 

内连接

 

交叉连接:交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。
1.1 inner join相等连接
1.2 natural join自然连接
1.3 cross join交叉连接


外连接

 

左联接:是以左表为基准,右连接:是以右表为基准,全连接:完整外部联接返回左表和右表中的所有行。
2.1 left join左外连接
2.2 right join右外连接
2.3 full join全连接


自连接

自连接说白了其实就是两张表结构和数据内容完全一样的表,在做数据处理的时候,我们通常会给它们分别重命名来加以区分(言外之意:不重命名也不行啊,不然数据库也不认识它们谁是谁),然后进行关联。

自连接详细参考:知乎+如何理解SQL中的自连接?

 

注意:图中有益处错误,细心的你发现了吗?

 

left join 和 right join

left join 和 right join 都是两个表进行 merge 的操作,left join 是将右边的表 merge 到左边,right join 是将左边的表 merge 到右边,通常我们会指定按照哪几列进行 merge

举个例子:

left table

姓名学号
小红SZ1716029
小明SZ1716030
小王SZ1716031

right table

学号排名
SZ17160291
SZ17160302

left table left join right table on 学号

学号姓名排名
SZ1716029小红1
SZ1716030小明2
SZ1716031小王NULL

left table right join right table on 学号

学号姓名排名
SZ1716029小红1
SZ1716030小明2

 

 

参考:SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

参考:如何理解SQL中的自连接?

参考:SQL连接查询

参考:SQL中的四种连接方式

参考:sql四种连接方式
参考:SQL 连接(JOIN)

 

以上是关于SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 连接(Join )

图解SQL的各种连接join[转]

有哪些使用 SQL 的 OUTER JOIN 的好例子?

SQL表连接查询(inner joinfull joinleft joinright join)

SQL的各种连接Join详解

[15]SQL 连接(JOIN)