MySQL documentation couvre ce sujet.
Voici un synopsis. Lors de l'utilisation de join
ou inner join
, le on
condition est facultative. Ceci est différent de la norme ANSI et différent de presque toutes les autres bases de données. L'effet est une cross join
. De même, vous pouvez utiliser un on
clause avec cross join
, qui diffère également du SQL standard.
Une jointure croisée crée un produit cartésien, c'est-à-dire chaque combinaison possible d'une ligne de la première table et d'une ligne de la seconde. La jointure croisée pour une table avec trois lignes ('a', 'b' et 'c') et une table avec quatre lignes (disons 1, 2, 3, 4) aurait 12 lignes.
En pratique, si vous voulez faire une jointure croisée, utilisez alors cross join
:
from A cross join B
est bien meilleur que :
from A, B
et :
from A join B -- with no on clause
Le on
La clause est requise pour une jointure externe droite ou gauche, donc la discussion n'est pas pertinente pour eux.
Si vous avez besoin de comprendre les différents types de jointures, vous devez étudier les bases de données relationnelles. Stackoverflow n'est pas un endroit approprié pour ce niveau de discussion.