W MySQL piszemy JOIN
bez zastrzeżeń oznacza INNER JOIN
. Innymi słowy INNER
w INNER JOIN
jest opcjonalne. INNER
i CROSS
są synonimami w MySQL. Dla jasności piszę JOIN
lub INNER JOIN
jeśli mam warunek przyłączenia i CROSS JOIN
jeśli nie mam schorzenia.
Dozwolona składnia złączeń jest opisana w dokumentacji .
Efekt jest ten sam, ale historia za nimi jest inna. Składnia przecinka pochodzi ze standardu ANSI-89. Istnieje jednak wiele problemów związanych z tą składnią, dlatego w standardzie ANSI-92 wprowadzono słowo kluczowe JOIN.
Zdecydowanie polecam zawsze użyj składni JOIN zamiast przecinka.
T1 JOIN T2 ON ...
jest bardziej czytelny niżT1, T2 WHERE ...
.- Jest łatwiejszy w utrzymaniu, ponieważ relacje między tabelami i filtry są jasno zdefiniowane, a nie mieszane.
- Składnia JOIN jest łatwiejsza do przekonwertowania na OUTER JOIN niż składnia przecinka.
- Pomieszanie składni przecinka i JOIN w tej samej instrukcji może spowodować dziwne błędy ze względu na zasady pierwszeństwa.
- Mniej prawdopodobne jest przypadkowe utworzenie produktu kartezjańskiego podczas używania składni JOIN z powodu zapomnianej klauzuli join, ponieważ klauzule join są zapisywane obok łączeń i łatwo jest sprawdzić, czy którejś nie brakuje.