关于外连接和内连接

先说背景:曾经一直认为左连接和左外连接是不一样的,在学校学习的时候这概念都很模糊,毕业的时候又基本都交给老师了,现在才知道原来左连接是左外连接的简写。。。。。下面详细的介绍一下自己的理解吧。如果有错,请大家指正。

首先sql的多表连接分为两大部分:外连接和内连接,外连接又分为左连接,右连接,全外连接

 

左右连接的区别:

A   left     join    B     的结果集与A表的记录数同  
A   
right     join    B   的结果集与B表的记录数同    
A   
left     join    B     等价     B    right     join    A 

内连接:

A   inner     join    B  on    a.id = b.id  结果集是AB两表的交集

select     *     from    a    inner     join    b    on    a.id = b.id  等价于
select     *     from    a,b    where    a.id = b.id 

 

 

注意:(以下摘自 http://www.cnblogs.com/cy163/archive/2008/10/16/1312920.html)

在你要使用多个left   join的时候  比如说10个  
我们把10个全都写成left   join的形式  

然后再SQL让他自动运行一下,它会把最后一次出现的left   join变成left    outer     join  

所以依此推理,最后一个left   join会以left    outer    join的形式存在  
当然,不管变不变对结果的显示没有任何影响 

 

CROSS   JOIN         笛卡尔乘积(所有可能的行对)注意不能使用on, 在交叉连接中没有on条件子句

INNER   JOIN         仅对满足连接条件的CROSS中的列
LEFT   OUTER   JOIN         一个表满足条件的行,和另一个表的所有行
RIGHT   OUTER   JOIN         与LEFT相同,但两个表的角色互换
FULL   OUTER   JOIN          LEFT   OUTER  和  RIGHT  OUTER中所有行的超集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值