Comprendre les jointures croisées et les jointures de tables séparées par des virgules dans SQL
SQL propose deux méthodes pour combiner des tables : les jointures croisées et les listes de tables séparées par des virgules. Bien qu'apparemment interchangeables, des différences significatives existent.
Jointure croisée et séparation par virgule : une comparaison
La principale différence réside dans leur syntaxe :
SELECT * FROM A CROSS JOIN B
SELECT * FROM A, B
Analyse des résultats
Sans clause WHERE
, les deux produisent un résultat identique : un produit cartésien : chaque ligne du tableau A est associée à chaque ligne du tableau B.
Normes de syntaxe et pratiques modernes
L'approche séparée par des virgules est considérée comme obsolète (standard SQL-89), remplacée par l'opérateur CROSS JOIN
introduit dans SQL-92. Bien que de nombreuses bases de données acceptent les deux, CROSS JOIN
est la norme dans le SQL moderne.
Considérations relatives aux performances
En général, les écarts de performances entre ces méthodes sont négligeables.
Les avantages de la norme SQL-92
La syntaxe SQL-92 offre un avantage crucial :
OUTER JOIN
s (LEFT JOIN
, FULL JOIN
, RIGHT JOIN
), permettant un contrôle précis de l'inclusion de lignes à partir de chaque table. L'ancienne syntaxe séparée par des virgules n'a pas cette capacité.Conclusion
Bien que les deux techniques génèrent des produits cartésiens, CROSS JOIN
est recommandée pour sa clarté, son respect des normes SQL modernes et sa prise en charge essentielle pour les opérations OUTER JOIN
. L'utilisation de CROSS JOIN
garantit une meilleure lisibilité et maintenabilité du code.
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!