Maison > base de données > tutoriel mysql > Jointure croisée et tableaux séparés par des virgules : quelle est la différence et lequel dois-je utiliser ?

Jointure croisée et tableaux séparés par des virgules : quelle est la différence et lequel dois-je utiliser ?

Barbara Streisand
Libérer: 2025-01-09 18:07:41
original
876 Les gens l'ont consulté

Cross Join vs. Comma-Separated Tables: What's the Difference and Which Should I Use?

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 :

  • Rejointure croisée : SELECT * FROM A CROSS JOIN B
  • Séparés par des virgules : 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 :

  • Compatibilité OUTER JOIN : SQL-92 a introduit les OUTER JOINs (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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal