左连接右连接傻傻分不清

Oracle数据库内置了几张练习表,笔者这里用到了emp和dept。表里的数据如下所示:

              首先,笔者先用ANSI SQL连接格式分别进行左右连接查询,结果如下:

                 对于这个结果,只要理解左右连接的原理的,都能明白。所以接下来笔者要说的是Oracle特有的连接方式:

select * from emp,dept where emp.deptno=dept.deptno(+)   ------左连接

select * from emp,dept where emp.deptno(+)=dept.deptno   ------右连接
                查询结果当然是与上面ANSI SQL查询的结果是一样的,但是往往我们刚接触到的时候都会对(+)的使用有点懵逼,笔者当初就有两大错觉(欲哭无泪),一是(+)在左就左连接,在右就右连接,二是(+)在哪张表后面就先查哪张表的字段。

                正确的理解可以用两句口诀来记:

               (+)在左,右连接,返回右表所有数据

               (+)在右,左连接,返回左表所有数据

                也可以形象一点的记忆:把(+)当成一种工具,那么谁带着这工具,谁就是仆人,另外那一张就是主人了。主人是拥有一切的,所以就显示所有数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟德三笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值