WHERE条款中ON条款的表现

时间:2010-07-15 06:05:36

标签: sql sql-server

任何人都可以告诉我以下哪些查询会有更好的表现?

SELECT 
      * 
FROM 
      [TABLE1] T1 
      INNER JOIN [TABLE2] T2 
      ON T2.[FK_ID] = T1.[PK_ID] 
WHERE 
      T2.[ACTIVE] = 1; 

SELECT 
      * 
FROM 
      [TABLE1] T1 
      INNER JOIN [TABLE2] T2 
      ON T2.[FK_ID] = T1.[PK_ID] AND 
      T2.[ACTIVE] = 1; 

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

它们完全相同:优化器非常聪明,可以解决这个问题。

至少,SQL是声明式的,所以你要求优化器提供一些东西但不告诉它如何操作。

但是,第一个是“正确的”,因为你将JOIN和WHERE分开。