Powodem jest to, że umieszczasz tabelę po prawej stronie w WHERE
klauzula. Powinieneś przenieść to do ON
warunek 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
Powodem tego jest to, że WHERE
klauzula jest oceniana po LEFT JOIN
, który następnie odfiltrowuje Twój NULL
wyniki z LEFT JOIN
.
W tym tabela po prawej stronie LEFT JOIN
(lub tabela po lewej stronie RIGHT JOIN
) w WHERE
klauzula skutecznie przekształca OUTER JOIN
do INNER JOIN
.