その理由は、右側のテーブルをWHERE
に含めているためです。 句。これをON
に移動する必要があります LEFT JOIN
の条件 :
Select P.appId, S.stepId, S.section, P.start
From #appSteps S With (NoLock)
Left Join #appProgress P On S.stepId = P.stepId
And P.appId = 101
Where S.section Is Not Null
これを行う理由は、WHERE
句は後に評価されます LEFT JOIN
、次にNULL
を除外します LEFT JOIN
の結果 。
LEFT JOIN
の右側のテーブルを含む (またはRIGHT JOIN
の左側のテーブル )WHERE
句は、OUTER JOIN
を効果的に変換します INNER JOIN
に 。