Dans MySQL, l'écriture JOIN
implique non qualifié INNER JOIN
. Autrement dit , l' INNER
en INNER JOIN
est facultative. 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 CROSS JOIN
si je n'ai pas de condition.
La syntaxe autorisée pour les jointures est décrite dans la documentation .
À l'heure actuelle, je pense qu'un JOIN autonome n'est rien de plus que (identique à) l'utilisation de virgules et de clauses WHERE.
L'effet est le même, mais l'histoire derrière eux est différente. La syntaxe de la virgule provient de la norme ANSI-89. Cependant, il existe un certain nombre de problèmes avec cette syntaxe, donc dans la norme ANSI-92, le mot clé JOIN a été introduit.
Je vous recommande fortement d' utiliser toujours la syntaxe JOIN plutôt que la virgule.
T1 JOIN T2 ON ...
est plus lisible que T1, T2 WHERE ...
.
- Il est plus facile à gérer car les relations de table et les filtres sont clairement définis plutôt que mélangés.
- La syntaxe JOIN est plus facile à convertir en OUTER JOIN que la syntaxe virgule.
- Mélanger la virgule et la syntaxe JOIN dans la même instruction peut donner des erreurs curieuses en raison des règles de priorité.
- Il est moins probable de créer accidentellement un produit cartésien lors de l'utilisation de la syntaxe JOIN en raison d'une clause de jointure oubliée, car les clauses de jointure sont écrites à côté des jointures et il est facile de voir s'il en manque une.