如题,我做Tree的数据表,然后递归遍历用到了with as
类似结构如下
;WITH RAINEO AS                                                                                            
             (                                                                                                          
SELECT * FROM TAB1   WHERE...//找根节点  ,同样也是基础数据                                    
UNION ALL                                                                                           
SELECT  * FROM TAB1 T1
JOIN RAINEO T2
ON ........
)SELECT * FROM RAINEO 先我想要 用 TAB1 LEFT JOIN TAB2 组成一个新的表TAB3,
当我用TAB3 的sql替换 TAB1 时候发现过不了
期待高手指路~ 深表感谢。 

解决方案 »

  1.   

    TAB1(A1, A2 --例)---表
    left join 
    TAB2(B1)
    =>
    TAB3(A1, A2 ,B1);WITH RAINEO AS                                                                       
    (                  
    SELECT * FROM (SELECT A.*,B.* 
          FROM TAB1 A 
          LEFT JOIN TAB2 B 
          ON A.A1=B.B1)A WHERE...//找根节点 
    UNION ALL SELECT  * 
    FROM (SELECT A.*,B.* 
          FROM TAB1 A 
          LEFT JOIN TAB2 B //left join 不能用,怎么解决呢?
          ON A.A1=B.B1)A T1 
          JOIN RAINEO T2 
    ON ........ 
    )SELECT * FROM RAINEO