sql连接类型(sql有哪几种连接)

http://www.itjxue.com  2023-01-30 13:03  来源:未知  点击次数: 

sql左外连接和右外连接的区别

一、数据集合不同

1、左外连接:是A和B的交集再并上A的所有数据。

2、右外连接:是A和B的交集再并上B的所有数据。

二、语法不同

1、左外连接:SELECT *FROM aLEFT OUTER JOIN bON a.`ageId` = b.`id`。

2、右外连接:SELECT *FROM aright OUTER JOIN bON a.`ageId` = b.`id`。

三、运算方式不同

1、左外连接:其运算方式为:A左连接B的记录=图3公共部分记录集C+表A记录集A1。

2、右外连接:其运算方式为:A右连接B的记录=图3公共部分记录集C+表B记录集B1 。

参考资料来源:百度百科-right join

参考资料来源:百度百科-外连接

SQL常用的几种连接(JOIN)小结

连接运算是8种关系运算中的一种。

五种JOIN方式:

1.INNER JOIN or JOIN2.OUTER JOIN

2.1LEFT OUTER JOIN or LEFT JOIN

2.2RIGHT OUTER JOIN or RIGHT JOIN

2.3FULL OUTER JOIN or FULL JOIN3.NATURAL JOIN4.CROSS JOIN5.SELF JOINPS:JOIN中的简写为语法糖,实际中写出来方便读一点而已12345678910

两种连接条件:

1.Equi JOIN ? ?1.1NATURAL ? ?1.2USING(a,b) ? ?1.3= ? ?...2.Theta JOIN ? ?2.1= ? ?2.2= ? ?2.3 ? ?...PS:USING(...)指定需要哪些列相等。ON则可以指定任意的连接条件(=,=,=,!=,,...)123456789101112

JOIN or INNER JOIN

返回两个表中同时满足条件的元组对,不满足的将被丢弃。

OUTER JOIN

LEFT OUTER JOIN

返回左表所有行以及右表满足条件的行,左表有值右表无值填充为null

RIGHT OUTER JOIN

返回右表所有行以及左表满足条件的行,右表有值左表无值填充为null

FULL OUTER JOIN

返回所有表的所有行,在满足条件的行之外,左表满足右表不满足或者相反,均填充null

NATURAL JOIN

1、来自两个关系的元组对在共同属性上的值相同。(不限于一个共同属性,也可以是多个共同属性)

2、去掉重复的属性(列)。

3、列出属性的顺序:先是共同属性,然后是第一个关系的属性,最后是第二个关系的属性。

为了防止两个表有多个共同属性时natural join 会忽略部分需要的元组对,应使用join…using(…),以指定需要哪些列相等

join…using(…)连接只能局限在指定的属性上

CROSS JOIN

返回笛卡儿积

SELF JOIN

相当于A JOIN A

最后放一张图:

sql 各种连接的使用条件,

只有一个单纯的join 就是内连接。

比如有表A与表B,都有字段X,通过字段X相关联。

想取表A与表B中X相等的数据,就用内连接,就是join

如果想取表A所有的,表B中X与表A相等的,就是左连接 left join

右连接与左连接的原理一样,只是两表换一下,就是左变右了。

外联接,就是把两个表有的数据都取出来,有关联的,就关联上了,没有关联的,表A有的,表B没有,这些数据,表B的字段都是null,表B有的,表A没有,表A这些字段就是null

SQL的连接类型

关键字:inner join... on...? ? /join ...? on ...

含义:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集部分

关键字:FULL ?JOIN ...on...

含义:完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

关键字:left join ...? on ...

含义:左(外)连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。

关键字:right join ...? on ...

含义:右(外)连接,左表只会显示符合搜索条件的记录,而右表的记录将会全部表示出来。左表记录不足的地方均为NULL

SQL中有几种连接?有什么区别?(左连右连内连和外连?)

两个主要的连接类型是内连接和外连接。到目前为止,所有示例中使用的都是内连接。内连接只保留交叉积中满足连接条件的那些行。如果某行在一个表中存在,但在另一个表中不存在,则结果表中不包括该信息。

外连接是内连接和左表和/或右表中未包括内连接中的那些行的并置。当对两个表执行外连接时,可任意将一个表指定为左表而将另一个表指定为右表。外连接有三种类型:

左外连接包括内连接和左表中未包括在内连接中的那些行。

右外连接包括内连接和右表中未包括在内连接中的那些行。

全外连接包括内连接以及左表和右表中未包括在内连接中的行。

(责任编辑:IT教学网)

更多

推荐导航代码文章