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以外的地方又不变的前提下,有什么办法提高消除这种重复查询吗?

解决方案 »

  1.   

    SELECT * 
     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;在三个子查询一样的时候可以这样..不一样的时候..就如你这样写了.
      

  2.   


    我需要这样的
    SELECT * FROM
    (
      SELECT * 
      INTO # 
      FROM( 
       /* 
         sub_query 
       */ 
      ) AS t;  SELECT ... FROM #
      INNER JOIN ... FROM # ...
      INNER JOIN ... FROM # ...
    )
    把FROM后面子查询的优化做在FROM子句里面