Как я чистил некоторые проблемы в старом зрения в нашей базе данных я наткнулся на это «странный» присоединиться условия: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; то есть два последовательных на операциях в строке.
Я не нашел подходящего ответа в любом месте в Интернете, потому что я не знал, что такое присоединяется к.
Итак вопросы:
- ли это своего рода "отложенный условный" Join есть имя?
- Как это можно переписать для создания того же набора результатов, где операторы на не являются последовательными?
- Возможно, это «умное» решение, когда всегда был более простой/понятный способ?
Один из моих сотрудников сделал это хотя бы один раз. Запросы выполняются успешно. Те из нас, кто считает, что ясность и удобочитаемость являются искупительными качествами в программировании, считают, что это умный способ быть глупым. –
Это было сделано для управления порядком соединений. По-видимому, внутренние соединения должны произойти первыми. – shawnt00