select *
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0等价于Oracle里的何种写法以下方法试过不行。
select *
from order o,revieworders ro
where on o.orderno = ro.orderno(+)
and ro.isadopt<>0
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0等价于Oracle里的何种写法以下方法试过不行。
select *
from order o,revieworders ro
where on o.orderno = ro.orderno(+)
and ro.isadopt<>0
select *
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0或者写全.
select *
from order o
Left outer join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0这种简单左外连接,oracle跟sqlserver是一样的。
from order o,(select * from revieworders where isadopt<>0 )ro
where on o.orderno = ro.orderno(+)
你说的是这样吗?
连接的时候条件放里面
oracle QQ群:54775466
爱好者入群 谢谢。
from order o,revieworders ro
where on o.orderno = ro.orderno(+)
and ro.isadopt<>0多了on
from order o,(select * from revieworders where isadopt<>0 )ro
where on o.orderno = ro.orderno(+) 与
select *
from order o,revieworders ro
where o.orderno = ro.orderno(+)
and ro.isadopt<>0结果集是一样的。只要在revieworders不存在记录,该记录不会搜索出来。select *
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0这条SQL,即使订单相关记录在revieworders不存在记录,该记录也可以出来。
from order o
left join revieworders ro on o.orderno = ro.orderno and ro.isadopt<>0等同于ORACLE中这个,ORACLE支持(+)这个方法表示左右连接select *
from order o
, revieworders ro where o.orderno = ro.orderno(+) and ro.isadopt<>0
from order o,(select * from revieworders where isadopt<>0 )ro
where o.orderno = ro.orderno(+) 与原sql语句等价
left join on = 是sql99的标准语法,按理说两者的结果是一致的。
但是不同的oracle版本上oracle是否会对自己的语法执行效率进行优化有待查证。
有兴趣的话楼主可以深入探寻下。