De reden is dat u de rechtertabel opneemt in de WHERE
clausule. Je moet dat verplaatsen naar de ON
toestand van de 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
De reden dat het dit doet is omdat de WHERE
clausule wordt geëvalueerd na de LEFT JOIN
, die vervolgens uw NULL
. uitfiltert resultaten van de LEFT JOIN
.
Inclusief de rechter tabel van een LEFT JOIN
(of de linkertabel van een RIGHT JOIN
) in de WHERE
clausule transformeert effectief de OUTER JOIN
in een INNER JOIN
.