Следующие запросы SQL одинаковы:
SELECT column1, column2
FROM table1, table2
WHERE table1.id = table2.id;
SELECT column1, column2
FROM table1 JOIN table2
ON table1.id = table2.id;
И, конечно же, приводят к одинаковым планам запросов на каждой СУБД, которую я когда-либо пробовал.
Но время от времени я читаю или слышу мнение, что одно определенно лучше другого. Естественно, эти претензии никогда не подтверждаются объяснением.
Там, где я работаю, вторая версия, похоже, пользуется популярностью у большинства других разработчиков, поэтому я также склоняюсь к этому стилю, чтобы минимизировать удивление. Но в глубине души я действительно думаю о первом (поскольку именно так я это и выучил).
Является ли одна из этих форм объективно лучше другой? Если нет, то каковы причины использования одного над другим?