oracle使用(+)操作符,在一本书上看到这句话,是不是有错误
当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+)操作符
这句话是不是不正确啊, 好想只要连接字段的条件加(+)操作符就可以了吧
select a.dname,b.ename from dept a,emp b where a.deptno=b.deptno(+) and b.deptno(+)=10
and 等等,都要用(+)操作符吗,
我看我们的项目中,好多语句都只是连接字段中使用(+),其他的条件都没有写,会不会有错误啊
我在这里就讨论这个问题,不是讨论用不用(+)的问题, oracle 9i开始就建议使用outer join执行外连接
[解决办法]
个人习惯了
[解决办法]
他语文没学好而已。
+代表on的条件,就算两个值不等,如果左右连接,也能出来相应的行。
没有+代表where条件(也可以看成是inner join),两个值不等的根本不会出现在结果集中
[解决办法]
哈哈,习惯很可怕~不过不影响使用
[解决办法]
create table t1(id varchar2(50),name varchar2(50));create table t2(id varchar2(50),name varchar2(50));insert into t1 values ('1','a');insert into t1 values ('2','b');insert into t1 values ('3','c');insert into t2 values ('1','d');insert into t2 values ('4','f');select * from t1,t2 where t1.id=t2.id(+) and t2.name='d' --t2.name 不加(+)ID NAME ID NAME----------------------------------- --1 a 1 dselect * from t1,t2 where t1.id=t2.id(+) and t2.name(+)='d' --t2.name 加(+)ID NAME ID NAME---------------- --------------------- 1 a 1 d3 c 2 b
[解决办法]
顶这个呀: