В MySQL пише JOIN
неквалифицирано означава INNER JOIN
. С други думи INNER
в INNER JOIN
е по избор. INNER
и CROSS
са синоними в MySQL. За по-голяма яснота пиша JOIN
или INNER JOIN
ако имам условие за присъединяване и CROSS JOIN
ако нямам състояние.
Разрешеният синтаксис за присъединяване е описан в документацията .
Ефектът е същият, но историята зад тях е различна. Синтаксисът на запетаята е от стандарта ANSI-89. Въпреки това има редица проблеми с този синтаксис, така че в стандарта ANSI-92 беше въведена ключовата дума JOIN.
Горещо ви препоръчвам давинагите използвайте синтаксис JOIN, а не запетая.
T1 JOIN T2 ON ...
е по-четим отT1, T2 WHERE ...
.- Той е по-поддържаем, защото връзките на таблицата и филтрите са ясно дефинирани, а не смесени заедно.
- Синтаксисът JOIN е по-лесен за преобразуване във OUTER JOIN, отколкото синтаксисът на запетаята.
- Смесването на синтаксиса на запетая и JOIN в едно и също изявление може да доведе до любопитни грешки поради правилата за приоритет.
- По-малко вероятно е случайно да се създаде декартов продукт при използване на синтаксиса JOIN поради забравена клауза за присъединяване, тъй като клаузите за присъединяване са написани до присъединяванията и е лесно да се види дали липсва такава.