Oracle外链接查询遇上过滤条件后导致外链接失效

       今天遇到一个外链接加上过滤条件导致外链接失效(也就是没有起作用 ),虽然是个小问题,但是自己之前真的没有在意,今天记一下顺便温习一下oracle表连接:
SQL> select * from t1;
         A          B
---------- ----------
         1        101
         2        102
         3        103
         4        104
         5        105
         6        106
         7        107
         8        108
         9        109

SQL> select * from t2;
         C          D
---------- ----------
                 1001
         2       1002
                 1003
         4       1004
                 1005
         6       1006
                 1007
         8       1008
                 1009

SQL> select a,b,c,d from t1,t2 where t1.a=t2.c(+);   ---不加过滤条件,会得到下面的结果集
         A          B          C          D
---------- ---------- ---------- ----------
         2        102          2       1002
         4        104          4       1004
         6        106          6       1006
         8        108          8       1008
         5        105
         3        103
         1        101
         7        107
         9        109
SQL> select a,b,c,d from t1,t2 where t1.a=t2.c(+) and t2.d>1001;   --但是加了过滤调价t2.d>1001后发现直接外链接就没作用了
         A          B          C          D
---------- ---------- ---------- ----------
         2        102          2       1002
         4        104          4       1004
         6        106          6       1006
         8        108          8       1008

SQL> select a,b,c,d from t1,t2 where t1.a=t2.c(+) and t2.d(+)>1001;  ---改成t2.d(+)>1001,查询又会继续走外链接
         A          B          C          D
---------- ---------- ---------- ----------
         2        102          2       1002
         4        104          4       1004
         6        106          6       1006
         8        108          8       1008
         5        105
         3        103
         1        101
         7        107
         9        109


结论: 当表连接使用外连接时,如果where字句包含多个条件,必须在所有条件中都增加(+)操作符,否则外链接很有可能直接不起作用的,
谨以此记录一下

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28473562/viewspace-1819942/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28473562/viewspace-1819942/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值