正如我在我們的數據庫中的舊觀點我碰到這個「奇怪」來清理一些問題加入條件:SQL - 連「ON」語句
from
tblEmails [e]
join tblPersonEmails [pe]
on (e.EmailID = pe.EmailID)
right outer join tblUserAccounts [ua]
join People [p]
on (ua.PersonID = p.Id)
join tblChainEmployees [ce]
on (ua.PersonID = ce.PersonID)
on (pe.PersonID = p.Id)
表tblUserAccounts作爲一個引用右外部連接,但是上的條件僅在引用tblChainEmployees之後纔會聲明;那麼連續有兩個聲明連續。
我無法在互聯網上的任何地方找到相關答案,因爲我不知道這種加入被調用。
所以問題:
- 難道這種「遞延有條件」加入有名字嗎?
- 這怎麼可以重寫產生相同的結果集在陳述是不連續的?
- 也許這是一個「聰明」的解決方案時,總是有一個更簡單/更清晰的方式?
我的一位同事至少也這樣做了一次。查詢成功執行。我們這些相信清晰性和可讀性可以在編程代碼中獲得品質的人認爲這是一個愚蠢的聰明方式。 –
這樣做是爲了控制連接的順序。顯然內部連接需要首先發生。 – shawnt00