Prawdą jest, że obie formy składni powinny dawać ten sam wynik i wewnętrznie MySQL wykonuje je obie dokładnie w ten sam sposób. Obecne wersje standardu SQL obsługują obie formy, chociaż styl przecinka jest obsługiwany tylko ze względu na kompatybilność wsteczną.
Jest przypadek, w którym użycie składni w stylu przecinka zawodzi, ale jest to egzotyczne:
SELECT * FROM A, B JOIN C ON C.x = A.y;
JOIN
operator ma wyższy priorytet niż przecinek. Tak więc powyższe zapytanie próbuje ocenić C.x = A.y
nie wie nawet, że A
jest częścią zapytania. Więc pojawia się błąd:
ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'
Najlepszym rozwiązaniem jest użycie JOIN
spójna składnia zamiast ich mieszania.
Nie możesz też tworzyć złączeń zewnętrznych za pomocą składni złączenia przecinkiem. Oracle i Sybase/Microsoft wymyśliły własną, zastrzeżoną składnię do obsługi złączeń zewnętrznych, ale żadne z nich nie są obsługiwane przez inne marki RDBMS. Obecnie wszystkie obecne wersje RDBMS, w tym Oracle i Sybase/Microsoft, obsługują standardowe JOIN
składni, więc nie ma dobrego powodu, aby używać starszych rozszerzeń specyficznych dla dostawcy.