日期:2014-05-16  浏览次数:20739 次

mysql左连接与oracle(+)使用对比
由于mysql不能像oracle一样使用(+)做外连接,使用left join或者right join需要注意
oracle: 
select a.aid aid , b.bid bid ,c.cid cid , d.did did , e.eid eid 
from 
tablea a , 
tableb b ,
tablec c ,
tabled d ,
tablee e 
where
a.aid = b.aid (+)
and a.aid = c.aid(+)
and b.bid = d.bid (+)
and d.did = e.eid (+)
order by a.aid , b.bid , c.cid , d.did ,e.eid
;



mysql:
select a.aid aid , b.bid bid ,c.cid cid , d.did did , e.eid eid 
from 
tablea a left join 
        (
        tableb b left join 
                ( 
                        tabled d left join tablee e 
                        on (d.did = e.eid) 
                )
                on (b.bid = d.bid )  
        )
        on ( a.aid = b.aid)
        left join tablec c 
        on a.aid = c.aid
order by a.aid , b.bid , c.cid , d.did ,e.eid
;


引至http://www.itpub.net/thread-1122562-1-1.html