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测试下试试看. 我只能就你上面的语句进行优化, 因为不清楚具体索引,各表数据量的大小,这样效果不一定会很明显.
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测试下试试看.
我只能就你上面的语句进行优化,
因为不清楚具体索引,各表数据量的大小,这样效果不一定会很明显.