怎么把SELECT DISTINCT t1.name,t1.actionname,t1.id,t1.parentid,t2.name,t2.actionname,t2.id,t2.parentid,t3.name,t3.actionname,t3.id,t3.parentid,t4.name,t4.actionname,t4.id,t4.parentid,t5.name,t5.actionname,t5.id,t5.parentid,t1.parameter,t2.parameter,t3.parameter,t4.parameter,t5.parameter,t1.Orderno,t2.Orderno,t3.Orderno,t4.Orderno ,t5.Orderno FROM T_SYS_menu t1, T_SYS_menu t2,T_SYS_menu t3,T_SYS_menu t4,T_SYS_menu t5, T_SYS_userofusergroup a, T_SYS_charofgroup b, T_SYS_powerofchar c, T_SYS_powerofaction d WHERE t1.layer = 1 AND t2.layer(+) = 2 AND t3.layer(+) = 3 AND t4.layer(+) = 4 AND t5.layer(+) = 5 AND t2.parentid = t1.id AND t3.parentid(+) = t2.id AND t4.parentid(+) = t3.id AND t5.parentid(+) = t4.id AND a.Usergroupid = b.groupid  AND b.charid = c.charid AND c.powerid = d.powerid AND t1.status = 1 AND t2.status(+) = 1  AND t3.status(+) = 1 AND t4.status(+) = 1 AND t5.status(+) = 1 AND a.status = 1 AND b.status = 1 AND c.status = 1 AND d.status = 1  AND (t1.actionname IS NULL OR t1.actionname = d.actionname) AND   (t2.actionname IS NULL OR t2.actionname = d.actionname)  AND (t3.actionname IS NULL OR t3.actionname = d.actionname)  AND (t4.actionname IS NULL OR t4.actionname = d.actionname) AND (t5.actionname IS NULL OR t5.actionname = d.actionname) AND a.userid = ?  AND t1.system = ? AND t2.system(+) = ? AND t3.system(+) = ? AND t4.system(+) = ?  AND t5.system(+) = ? ORDER BY t1.Orderno,t2.Orderno,t3.Orderno,t4.Orderno,t5.Orderno
转成sql2000语句啊 

解决方案 »

  1.   

    FROM   T_SYS_menu   t1,   T_SYS_menu   t2,T_SYS_menu   t3,T_SYS_menu   t4,T_SYS_menu   t5,   T_SYS_userofusergroup   a,   T_SYS_charofgroup   b,   T_SYS_powerofchar   c,   T_SYS_powerofaction   d  
    WHERE   t1.layer   =   1   
    AND   t2.layer(+)   =   2  
     AND   t3.layer(+)   =   3   
    AND   t4.layer(+)   =   4   
    AND   t5.layer(+)   =   5   
    AND   t2.parentid   =   t1.id  
     AND   t3.parentid(+)   =   t2.id   
    AND   t4.parentid(+)   =   t3.id   
    AND   t5.parentid(+)   =   t4.id   
    AND   a.Usergroupid   =   b.groupid     
    AND   b.charid   =   c.charid   
    AND   c.powerid   =   d.powerid  
     AND   t1.status   =   1  
     AND   t2.status(+)   =   1   
      AND   t3.status(+)   =   1  
     AND   t4.status(+)   =   1  
     AND   t5.status(+)   =   1   
    AND   a.status   =   1   
    AND   b.status   =   1   
    AND   c.status   =   1   
    AND   d.status   =   1     
    AND   (t1.actionname   IS   NULL   OR   t1.actionname   =   d.actionname)   
    AND       (t2.actionname   IS   NULL   OR   t2.actionname   =   d.actionname)   
      AND   (t3.actionname   IS   NULL   OR   t3.actionname   =   d.actionname)    
     AND   (t4.actionname   IS   NULL   OR   t4.actionname   =   d.actionname)  
     AND   (t5.actionname   IS   NULL   OR   t5.actionname   =   d.actionname)   
    AND   a.userid   =   ?     
    AND   t1.system   =   ?   
    AND   t2.system(+)   =   ?   
    AND   t3.system(+)   =   ?   
    AND   t4.system(+)   =   ?    
     AND   t5.system(+)   =   ?  
     ORDER   BY   t1.Orderno,t2.Orderno,t3.Orderno,t4.Orderno,t5.Orderno 这样的代码你也拿出来啊且不看性能,光看你代码就没人回答提醒你一下,把所有and table1(+) =table2写成and table1(*) =table2 这样最快,
    或letf join,需要改语句顺序,慢慢调试吧AND   t5.system(+)   =   ?  这个你想问谁啊,嘿嘿