V MySQL psaní JOIN
unqualified znamená INNER JOIN
. Jinými slovy INNER
v INNER JOIN
je volitelný. INNER
a CROSS
jsou synonyma v MySQL. Pro přehlednost píšu JOIN
nebo INNER JOIN
pokud mám podmínku spojení a CROSS JOIN
pokud nemám podmínku.
Povolená syntaxe pro spojení je popsána v dokumentaci .
Efekt je stejný, ale historie za nimi je odlišná. Syntaxe čárky je ze standardu ANSI-89. S touto syntaxí však existuje řada problémů, takže ve standardu ANSI-92 bylo zavedeno klíčové slovo JOIN.
Důrazně doporučuji, abyste vždy místo čárky použijte syntaxi JOIN.
T1 JOIN T2 ON ...
je čitelnější nežT1, T2 WHERE ...
.- Je lépe udržovatelný, protože vztahy mezi tabulkami a filtry jsou jasně definovány, nikoli smíchány dohromady.
- Syntaxi JOIN lze snáze převést na OUTER JOIN než syntaxi čárkou.
- Míchání syntaxe čárky a JOIN ve stejném příkazu může způsobit podivné chyby kvůli pravidlům přednosti.
- Je méně pravděpodobné, že při použití syntaxe JOIN dojde k náhodnému vytvoření kartézského produktu kvůli zapomenuté spojovací klauzuli, protože spojovací klauzule jsou zapsány vedle spojení a je snadné zjistit, zda některá chybí.