As seguintes consultas SQL são as mesmas:
SELECT column1, column2
FROM table1, table2
WHERE table1.id = table2.id;
SELECT column1, column2
FROM table1 JOIN table2
ON table1.id = table2.id;
E certamente resultam nos mesmos planos de consulta em todos os DBMS que eu já tentei.
Mas, de vez em quando, leio ou ouço uma opinião de que uma é definitivamente melhor que a outra. Naturalmente, essas alegações nunca são substanciadas com uma explicação.
Onde trabalho, a segunda versão parece ser favorecida pela maioria dos outros desenvolvedores e, portanto, também costumo seguir esse estilo para minimizar a surpresa. Mas, no meu coração, estou realmente pensando no primeiro (já que foi assim que o aprendi originalmente).
Uma dessas formas é objetivamente melhor que a outra? Caso contrário, quais seriam os motivos para usar um sobre o outro?