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
学号 | 排名 |
---|---|
SZ1716029 | 1 |
SZ1716030 | 2 |
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?的主要内容,如果未能解决你的问题,请参考以下文章