Fondamentalement, la différence entre les deux est que l'un est écrit à l'ancienne, tandis que l'autre est écrit à la manière moderne. Personnellement, je préfère le script moderne utilisant les définitions interne, gauche, externe et droite car elles sont plus explicatives et rendent le code plus lisible.
Lorsqu'il s'agit de jointures internes, il n'y a pas non plus de réelle différence de lisibilité, cependant, cela peut devenir compliqué lorsque vous traitez avec des jointures gauche et droite car dans l'ancienne méthode, vous obtiendriez quelque chose comme ceci:
SELECT *
FROM table a, table b
WHERE a.id = b.id (+);
Ce qui précède est l'ancienne façon dont une jointure gauche est écrite par opposition à ce qui suit:
SELECT *
FROM table a
LEFT JOIN table b ON a.id = b.id;
Comme vous pouvez le voir visuellement, la façon moderne dont le script est écrit rend la requête plus lisible. (Par ailleurs, il en va de même pour les jointures droites et un peu plus compliqué pour les jointures externes).
Pour en revenir à la plaque de la chaudière, cela ne fait aucune différence pour le compilateur SQL comment la requête est écrite car il les gère de la même manière. J'ai vu un mélange des deux dans les bases de données Oracle qui ont eu beaucoup de gens qui y écrivaient, les plus âgés et les plus jeunes. Encore une fois, cela se résume à la lisibilité du script et à l'équipe avec laquelle vous développez.