Dans MySQL écrit JOIN
non qualifié implique INNER JOIN
. En d'autres termes l' INNER
en INNER JOIN
est facultatif. INNER
et CROSS
sont des synonymes dans MySQL. Pour plus de clarté j'écris JOIN
ou INNER JOIN
si j'ai une condition de jointure et d' CROSS JOIN
si je n'ai pas une condition.
Le permis de syntaxe des jointures est décrit dans la documentation.
Droit maintenant, je pense à un stand-alone de JOINTURE est rien de plus (identique) à l'aide de virgules et les clauses where.
L'effet est le même, mais l'histoire est différente. La virgule syntaxe est à partir de la norme ANSI-89 standard. Cependant, il existe un certain nombre de problèmes avec cette syntaxe, donc dans la norme ANSI-92 la JOINTURE mot-clé a été introduit.
Je voudrais vous recommandons fortement de toujours utiliser la syntaxe de JOINTURE plutôt que la virgule.
-
T1 JOIN T2 ON ...
est plus lisible qu' T1, T2 WHERE ...
.
- Il est plus facile à maintenir car les relations entre les tables et les filtres sont clairement définis, plutôt que de les mêler ensemble.
- La syntaxe de JOINTURE est plus facile de convertir à la JOINTURE EXTERNE de la virgule de la syntaxe.
- Le mélange de la virgule et de la syntaxe de JOINTURE dans la même déclaration peut donner des curieux les erreurs dues aux règles de priorité.
- Il est moins probable qu'accidentellement créer un produit cartésien lors de l'utilisation de la syntaxe de JOINTURE due à l'oubli de clause de jointure, parce que les clauses de jointure sont écrits à côté de la rejoint et il est facile de voir si l'on est absent.