Nie ma istotnej różnicy przy ich wykonywaniu, ale jest czytelność, konsystencja i błędów łagodzącym problem w pracy:
Wyobraź sobie, że miał 4 stoły Jeśli użyto staroświecki sposób robienia INNER JOIN, by skończyć z:
SELECT col1, col2
FROM tab1, tab2, tab3,tab4
WHERE tab1.id=tab2.tab1_id
AND tab4.id = tab2.tab3_id
AND tab4.id = tab3.tab4_id;
Korzystanie wyraźny sprzężenia wewnętrzne byłoby:
SELECT col1, col2
FROM tab1
INNER JOIN tab2 ON tab1.id = tab2.tab1_id
INNER JOIN tab3 ON tab3.id = tab2.tab3_id
INNER JOIN tab4 ON tab4.id = tab3.tab4_id;
Ten ostatni pokazuje naprzeciwko stołu dokładnie co to jest łączącymi. Poprawiono czytelność i znacznie mniej błędów, ponieważ trudniej jest zapomnieć o wprowadzeniu klauzuli ON, niż dodać inne AND w WHERE lub dodanie zupełnie złego stanu (tak jak w powyższym zapytaniu :).
Dodatkowo, jeśli robisz inne typy połączeń, używając jawnego sposobu ich pisania, wystarczy zmienić INNER na coś innego, a kod jest konsekwentnie konstruowany.
"Comma joins" w ten sposób są starym kodem i nie gwarantują, że będą obsługiwane. Jest również mniej czytelny i elastyczny. Ogólnie rzecz biorąc, nie jest to zalecane. Łatwo jest uzyskać niepoprawną klauzulę WHERE iw ten sposób uzyskać znacznie więcej wierszy, niż się spodziewano. – Tobberoth
Konsorcjum SQL Ansi próbuje pozbyć się tych niejawnych połączeń (przecinek) przez dziesięciolecia. Ale istnieje wiele starszych systemów i wielu starszych programistów, co jest mało prawdopodobne. Idź z wyraźnymi złączeniami, to pozwólmy kodowi dużo wyraźniej. – jean