我對面的一個問題來了這裏,當我編寫一個查詢像這樣:左聯接屈服沒有結果
SELECT a.v, b.w, c.x, d.y, e.z
FROM a
JOIN b
on a.id = b.id
LEFT JOIN c
on a.id = c.id
LEFT JOIN d
on b.code=d.code
JOIN e
on a.n = e.n
WHERE
a.zone = 10
WITH (nolock)
我拿到幾百結果,但是當我將它修改爲這樣:
SELECT a.v, b.w, c.x, d.y, e.z
FROM a
JOIN b
on a.id = b.id
LEFT JOIN c
on a.id = c.id AND c.n = 0
LEFT JOIN d
on b.code=d.code AND d.n = 0
JOIN e
on a.n = e.n
WHERE
a.zone = 10
WITH (nolock)
我得到零結果。
根據我對SQL和左連接的理解,我覺得使用第一個查詢獲取任何結果意味着我應該至少獲得第二個結果,如果只有一個來自c和d的字段爲null。 PROGRESS是否以不尋常的方式實現外部連接?
我認爲這是因爲'B'不是一個左連接,當你加入'D'到'B'這個效果''a'' – 2013-03-26 15:47:55