我在Mysql里面执行下面的语句是正确的:
SELECT *
FROM (TBL_NODE N, TBL_NODE N2,TBL_NODE N3) 
LEFT JOIN TBL_NODE_VERSION V 
ON N.NODE_ID = V.NODE_ID AND N.PARENT_NODE_ID = N3.NODE_ID 但是在Oracle里面却不能通过,似乎Oracle里面不支持 (TBL_NODE N, TBL_NODE N2,TBL_NODE N3) LEFT JOIN TBL_NODE_VERSION V 这种写法, 不知道在Oracle里面如何实现多张表自然连接以后和别的表进行外连接?

解决方案 »

  1.   

    标准的join语法和oracle的where join 好像不能混用吧tablename1 left join tablename2
    on tablename1.f1 = tablename2.f1
    left join tablename3
    on tablename2.f2 = tablename3.f2或者tablename, tablename2, tablename2
    where tablename1.f1 = tablename2.f1(+)
    and tablename2.f2 = tablename3.f2(+)
      

  2.   

    (TBL_NODE N, TBL_NODE N2,TBL_NODE N3)括号问题吧,把括号去掉试试。
      

  3.   

    语法错误,请一个一个join
    SELECT *
    FROM  TBL_NODE 
    NLEFT JOIN  TBL_NODE_VERSION V, 
     ON N.NODE_ID = V.NODE_ID 
    LEFT JOIN  TBL_NODE N2, 
     ON N.NODE_ID = V.NODE_ID 
    LEFT JOIN  TBL_NODE N3, 
     N.PARENT_NODE_ID = N3.NODE_ID 
    AND
      

  4.   

    语法错误,请一个一个join
    SELECT *
    FROM  TBL_NODE N
    LEFT JOIN  TBL_NODE_VERSION V, 
     ON N.NODE_ID = V.NODE_ID 
    LEFT JOIN  TBL_NODE N2, 
     ON N.NODE_ID = V.NODE_ID 
    LEFT JOIN  TBL_NODE N3, 
     N.PARENT_NODE_ID = N3.NODE_ID 
      

  5.   


    晕死  仔细看一下  TBL_NODE N2 没有join条件阿
    SELECT *
    FROM  TBL_NODE N
    LEFT JOIN  TBL_NODE_VERSION V, 
     ON N.NODE_ID = V.NODE_ID 
    LEFT JOIN  TBL_NODE N3, 
     N.PARENT_NODE_ID = N3.NODE_ID TBL_NODE N2 没有join条件无法join
      

  6.   

    我想mysql用的人不是很多,我建议你把你的sql出的结果解释一下,这样我们大家才能更好的帮你。毕竟少了一个表TBL_NODE N2 我觉得应该与此有关。