Lý do là vì bạn đang đưa bảng bên phải vào WHERE
mệnh đề. Bạn nên chuyển nó sang ON
điều kiện của 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
Lý do nó làm được điều này là vì WHERE
mệnh đề được đánh giá sau LEFT JOIN
, sau đó lọc ra NULL
của bạn kết quả từ LEFT JOIN
.
Bao gồm bảng bên phải của LEFT JOIN
(hoặc bảng bên trái của RIGHT JOIN
) trong WHERE
mệnh đề chuyển đổi hiệu quả OUTER JOIN
vào một INNER JOIN
.