Důvodem je to, že do WHERE
vkládáte tabulku napravo doložka. Měli byste to přesunout do ON
stav 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
Důvodem, proč to dělá, je WHERE
klauzule je vyhodnocena po LEFT JOIN
, který pak odfiltruje vaše NULL
výsledky z LEFT JOIN
.
Včetně tabulky LEFT JOIN
vpravo (nebo levá tabulka RIGHT JOIN
) v WHERE
klauzule efektivně transformuje OUTER JOIN
do INNER JOIN
.