Las siguientes consultas SQL son las mismas:
SELECT column1, column2
FROM table1, table2
WHERE table1.id = table2.id;
SELECT column1, column2
FROM table1 JOIN table2
ON table1.id = table2.id;
Y ciertamente da como resultado los mismos planes de consulta en cada DBMS que he probado.
Pero de vez en cuando, leo o escucho una opinión de que uno es definitivamente mejor que el otro. Naturalmente, estas afirmaciones nunca se justifican con una explicación.
Donde trabajo, la segunda versión parece ser favorecida por la mayoría de los otros desarrolladores, por lo que también tiendo a ese estilo para minimizar la sorpresa. Pero en mi corazón, realmente estoy pensando en el primero (ya que así es como lo aprendí originalmente).
¿Es una de estas formas objetivamente mejor que la otra? Si no, ¿cuáles serían las razones para usar una sobre la otra?