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 .