如
SELECT * FROM sub_query其中sub_query 如下
SELECT ... FROM sub_sub_query
INNER JOIN SELECT ... FROM sub_sub_query ON ...
INNER JOIN SELECT ... FROM sub_sub_query ON ...这里sub_sub_query重复了三次,对效率影响比较大,在保持sub_sub_query以外的地方又不变的前提下,有什么办法提高消除这种重复查询吗?
SELECT * FROM sub_query其中sub_query 如下
SELECT ... FROM sub_sub_query
INNER JOIN SELECT ... FROM sub_sub_query ON ...
INNER JOIN SELECT ... FROM sub_sub_query ON ...这里sub_sub_query重复了三次,对效率影响比较大,在保持sub_sub_query以外的地方又不变的前提下,有什么办法提高消除这种重复查询吗?
INTO #
FROM(
/*
sub_query
*/
) AS t;SELECT *
FROM # AS A
JOIN # AS B
ON A.XX=B.XX
JOIN # AS C
ON A.XX=C.XX;在三个子查询一样的时候可以这样..不一样的时候..就如你这样写了.
我需要这样的
SELECT * FROM
(
SELECT *
INTO #
FROM(
/*
sub_query
*/
) AS t; SELECT ... FROM #
INNER JOIN ... FROM # ...
INNER JOIN ... FROM # ...
)
把FROM后面子查询的优化做在FROM子句里面