老版本的ORACLE多表关联表达式只能:
select a.*,b*,c.* 
from a,b,c
where a.id(+)=b.id and a.dat(+)=b.dat
and b.name=c.name(+)
====================================
9i后可用join关联,以上3表关联如何写?谢谢!

解决方案 »

  1.   

    只需记住,+号在哪边,哪边就是右
    因此:select *
      from a 
     right join b on a.id = b.id and a.dat = b.data
     right join c on b.name = c.name或是select *
      from b
      left join a on b.id = a.id and b.data = a.dat
      left join c on b.name = c.name
      

  2.   

    SELECT * FROM (SELECT * FROM A LEFT JOIN B ON A.ID=B.ID AND A.DAT=B.DAT) D
    LEFT JOIN C ON  D.NAME=C.NAME
      

  3.   

    如果4表关联: 
    select a.*,b*,c.* 
    from a,b,c 
    where a.id(+)=b.id and a.dat(+)=b.dat 
    and b.name=c.name(+) 
    and c.CODE=D.CODE(+)不用子查询怎么写? 
      

  4.   

    select a.*, b.*, c.*, d.*
      from b
     right join a on b.id = a.id
                 and b.dat = a.dat
      left join c on b.name = b.name
      left join d on c.code = d.code