Requêtes MySQL JOIN sans conditions ON
Question : Les requêtes MySQL JOIN peuvent-elles être écrites sans instruction ON, et en quoi diffèrent-ils de la GAUCHE et de la DROITE JOIN ?
Réponse :
Oui, MySQL permet d'écrire des requêtes JOIN sans condition ON. Ce comportement s'écarte des normes ANSI SQL et de la plupart des autres bases de données. Cependant, de telles requêtes sont équivalentes à une jointure croisée, qui crée un produit cartésien plutôt que de joindre des lignes basées sur des conditions communes.
Lorsqu'une clause ON est absente d'un JOIN ou d'un INNER JOIN dans MySQL, l'effet est un jointure croisée. De même, une clause ON peut être utilisée avec un CROSS JOIN pour affiner davantage les conditions de jointure.
Différences entre les LEFT et RIGHT JOIN :
Les LEFT et RIGHT JOIN nécessitent un Clause ON pour spécifier les conditions de jointure. En effet, leur objectif est d'inclure des lignes du tableau de gauche ou du tableau de droite même s'il n'y a aucune ligne correspondante dans l'autre tableau. Sans clause ON, ils renverraient simplement les lignes des tables de gauche et de droite séparément, respectivement.
Considérations pratiques :
Bien qu'il soit techniquement possible d'utiliser JOIN requêtes sans conditions ON dans MySQL, il est généralement conseillé d'utiliser explicitement CROSS JOIN pour plus de clarté. La syntaxe suivante est préférable :
from A cross join B
sur :
from A, B
ou :
from A join B -- with no on clause
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!