Następujące zapytania SQL są takie same:
SELECT column1, column2
FROM table1, table2
WHERE table1.id = table2.id;
SELECT column1, column2
FROM table1 JOIN table2
ON table1.id = table2.id;
I z pewnością skutkują tymi samymi planami zapytań na każdym DBMS, którego kiedykolwiek próbowałem.
Ale co jakiś czas czytam lub słyszę opinię, że jedna jest zdecydowanie lepsza od drugiej. Oczywiście twierdzenia te nigdy nie są uzasadnione wyjaśnieniem.
Tam, gdzie pracuję, wydaje się, że druga wersja jest faworyzowana przez większość deweloperów, dlatego też dążę do tego stylu, aby zminimalizować zaskoczenie. Ale w moim sercu naprawdę myślę o tym pierwszym (ponieważ tak właśnie się nauczyłem).
Czy jedna z tych form jest obiektywnie lepsza od drugiej? Jeśli nie, jakie byłyby powody używania jednego nad drugim?