sql连接类型(sql有哪几种连接)
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中有几种连接?有什么区别?(左连右连内连和外连?)
两个主要的连接类型是内连接和外连接。到目前为止,所有示例中使用的都是内连接。内连接只保留交叉积中满足连接条件的那些行。如果某行在一个表中存在,但在另一个表中不存在,则结果表中不包括该信息。
外连接是内连接和左表和/或右表中未包括内连接中的那些行的并置。当对两个表执行外连接时,可任意将一个表指定为左表而将另一个表指定为右表。外连接有三种类型:
左外连接包括内连接和左表中未包括在内连接中的那些行。
右外连接包括内连接和右表中未包括在内连接中的那些行。
全外连接包括内连接以及左表和右表中未包括在内连接中的行。