需要简化代码或减少联接

问题描述 投票:-1回答:1

我需要简化代码或减少连接,因为执行所需的时间太长。

FROM table2
JOIN  
table1 ON table1.column1 = table2.column1
AND table2.column2 IN ('classic')

JOIN table3 ON table1.column3= table3.column3

LEFT JOIN 
      (SELECT * FROM table4 WHERE Date>DATEADD(dd, -14, GETDATE())) 
 ON table2.column4 =table4.column4

AND table4.Date > table2.Time
AND table4.NextDate<= ISNULL(some condition)))
AND table3.column5= table4.column5
WHERE table2.Date > DATEADD(dd, -14, GETDATE()) as a

感谢您的任何帮助

sql sql-server
1个回答
-1
投票

使用`CTE并分割和过滤数据集,然后进行联接,并在可能的情况下索引联接列。

with table2cte as 
(
    select <collist>
    from table2
    where table2.column2 IN ('classic') and colDate > DATEADD(dd, -14, GETDATE()
) 
© www.soinside.com 2019 - 2024. All rights reserved.