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, sin duda, resulta en los mismos planes de consulta en todos los 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 fundamentan con un explicación.
Donde trabajo, la segunda versión parece ser favorecida por la mayoría de los demás desarrolladores, y por eso también tiendo hacia ese estilo para minimizar la sorpresa. Pero en mi Corazón, realmente estoy pensando en el primero (ya que así es como aprendí originalmente it).
¿Es una de estas formas objetivamente mejor que la otra? Si no, ¿cuáles serían las razones para utilizar una sobre la otra?