Я бы не использовал синтаксис * = или = (+), поскольку они несовместимы с другими СУБД или даже в случае с MSSQL Server, совместимым с более поздними версиями, если вы не включите низкие уровни совместимости. Тогда действительно беспокоит то, что в какой-то момент MS просто полностью откажется от поддержки.
Мне потребовалось некоторое время, чтобы привыкнуть к изменению моих "старых" привычек ... Я предпочел синтаксис * =, потому что его было меньше печатать и объединять с более простым потоком равных объединений (которые все еще действительны и приемлемы) *
Одним из моих возражений против перехода на использование JOINS была вся эта печать и путаница, которую я обнаружил в примерах запросов, использующих их.
Некоторые хитрости, которые я обнаружил, были просто проблемы с форматированием и знание того, что действительно требуется. Использование «ВНУТРЕННИХ» и «ВНЕШНИХ» полностью избыточно и не нужно. Кроме того, я использую скобки, чтобы разделить конец предложения соединения и поместить каждое условие в отдельную строку:
FROM blah b LEFT JOIN blah2 b2 ON (b.ID = b2.ID)
LEFT JOIN blah3 b3 ON (b.ID = b3.ID)
...
Некоторые говорят, что синтаксис ANSI JOIN сложнее испортить, потому что при равных соединениях легко пропустить параметр соединения ... На практике у меня было больше трудностей, когда я забыл сказать «ГДЕ», а интерпретатор все еще думал Я определяю условия соединения, а не условия поиска, которые могут привести к всевозможным трудным для поиска / странностям результатам.