Компания, в которой я работаю, имеет приложение, которое использует объектную модель для генерации sql. Он генерирует его со вторым синтаксисом большую часть времени. Так много соединений, а затем на условиях. Очень сложно пытаться расшифровать, какое условие применимо к какой таблице, когда у вас много таблиц.
Поэтому я предпочитаю ставить предложение ON вместе с таблицей, к которой я присоединяюсь.
Намного легче определить, какие предложения объединения вы использовали для таблицы и какие условные предложения являются частью вашего оператора соединения. А правильное соединение - это залог успеха. Я также предпочитаю скобки.
SELECT primarytable.whatever
FROM primarytable
INNER JOIN secondarytable ON (primarytable.primarykey = secondarytable.foreignkey)
INNER JOIN othertable ON (primarytable.foreignkey = othertable.primarykey AND othertable.somefield = 1)
LEFT OUTER JOIN outertable ON (secondarytable.foreignkey = outertable.primarykey)
WHERE primarytable.somefield IS NOT NULL