Sql 中内连接、外连接、全连接的区别!

内连接(inner join)
内连接:也称为等值连接,返回两张表都满足条件的部分,也就是显示表之间有连接匹配的所有行

外连接(out join)
外连接分为外左连接(left outer join)和外右连接(right outer join)
注释: left outer join 与 left join 等价,一般写成left join ; right outer join 与 right join等价,一般写成right join
左连接:取左边的表的全部,右边的表按条件,符合的显示,不符合则显示null
举例:select <select list> from A left join B on A.id=B.id

右连接:取右边的表的全部,左边的表按条件,符合的显示,不符合则显示null
举例:select <select list> from A right join B on A.id=B.id

全连接(Full join)
全外连接就是先以左表进行左外连接,然后以右表进行右外连接,在结果中除了显示满足连接的条件的行外,还显示了join两侧表中所有满足检索条件的行。

总结:
左连接 ,右连接,内连接和全外连接的4者区别:
left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。
right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。
inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。
full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

连接查询是SQL查询的核心,连接查询的连接类型选择依据实际需求。如果选择不当,非但不能提高查询效率,反而会带来一些逻辑错误或者性能低下。下面总结一下两表连接查询选择方式的依据:
1、 查两表关联列相等的数据用内连接。
2、 Col_L是Col_R的子集时用右外连接。
3、 Col_R是Col_L的子集时用左外连接。
4、 Col_R和Col_L彼此有交集但彼此互不为子集时候用全外。
5、 求差操作的时候用联合查询。
多个表查询的时候,这些不同的连接类型可以写到一块。例如:
SELECT T1.C1,T2.CX,T3.CY
FROM TAB1 T1

   INNER JOIN TAB2 T2 ON (T1.C1=T2.C2)
   INNER JOIN TAB3 T3 ON (T1.C1=T2.C3)
   LEFT OUTER JOIN TAB4 ON(T2.C2=T3.C3);

WHERE T1.X >T3.Y;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值