UP UP UP UP
大家帮帮忙啊

解决方案 »

  1.   

    写个存储过程吧!你这样的SQL效率肯定不高!要么库设计有问题
      

  2.   

    1,没数据库结构,没测试数据. 
    2,字段   命名,关系   紊乱,无文字说明. 
    3,无作用描述.没人想花时间去理解你的句子,猜测你要干什么. 所以,看着都想吐了,谁还帮你
    正解.SELECT   COUNT(DISTINCT   T5.`ID`) 
                            FROM `REL_LHFUNC_TABLE`   AS   T5 
                            INNER   JOIN    ( 
                                          SELECT DISTINCT   T3.`ID` 
                                          FROM `REL_LHFUNC_TABLE`   AS   T3, 
                                          ( 
                                                    (SELECT 
                                                                T2.`FUNC_ID`   AS   FUNC_ID, 
                                                                T1.`UP_ID`   AS   LH_ID 
                                                      FROM 
                                                              `REL_TABLE`   AS   T1,   `PH_TABLE`   AS   T2 
                                                      WHERE 
                                                                T1.`UP_TYPE`   =   'LH' 
                                                      AND 
                                                                T1.`DOWN_TYPE`   =   'PH' 
                                                      AND 
                                                                T2.`ID`   =   T1.`DOWN_ID` 
                                                      ) 
                                                      UNION 
                                                      (SELECT 
                                                                T2.`FUNC_ID`   AS   FUNC_ID, 
                                                                T1.`UP_ID`   AS   LH_ID 
                                                        FROM 
                                                              `REL_TABLE`   AS   T1,   `UI_TABLE`   AS   T2 
                                                        WHERE 
                                                                T1.`UP_TYPE`   =   'LH' 
                                                        AND 
                                                                T1.`DOWN_TYPE`   =   'UI' 
                                                        AND 
                                                                T2.`ID`   =   T1.`DOWN_ID` 
                                                           ) 
                                          )   AS   T4 
                                          WHERE 
                                                  T3.`FUNC_ID`   =   T4.FUNC_ID 
                                          AND 
                                                  T3.`LH_ID`   =   T4.LH_ID 
                                          ) AS `tmpT3` ON `tmpT3`.`ID`=T5.`ID`
                            INNER   JOIN   `FUNCTION_TABLE`   AS   T6   ON   T5.`FUNC_ID`   =   T6.`ID` 
                            INNER   JOIN   `LH_TABLE`   AS   T7   ON   T5.`LH_ID`   =   T7.`ID` 
                            LEFT   JOIN   `CLOSED_TABLE`   AS   T8   ON   T5.`LH_ID`   =   T8.`PROJ_ID` 
                            WHERE T8.`PROJ_TYPE`   =   'LH' 
                            AND T8.`ID`   IS   NULL测试下试试看.
    我只能就你上面的语句进行优化,
    因为不清楚具体索引,各表数据量的大小,这样效果不一定会很明显.