Maison >base de données >tutoriel mysql >CROSS JOIN vs INNER JOIN : quand utiliser quelle jointure SQL ?

CROSS JOIN vs INNER JOIN : quand utiliser quelle jointure SQL ?

DDD
DDDoriginal
2025-01-22 10:21:10449parcourir

CROSS JOIN vs. INNER JOIN: When to Use Which SQL Join?

CROSS JOIN et INNER JOIN en SQL

Comprendre CROSS JOIN

CROSS JOIN, également connu sous le nom de produit cartésien, récupère toutes les combinaisons possibles de lignes de deux ou plusieurs tables. Il ne filtre pas les lignes en fonction de critères spécifiques, il multiplie simplement le nombre de lignes dans chaque table. Par exemple, si une table comporte 5 lignes et une autre table 3 lignes, leur CROSS JOIN renverra un ensemble de résultats de 15 lignes.

Exemple :

Considérez la forme suivante :

<code>Customers:
CustomerID | Age | Gender
--------- | --- | -------
C0        | 25   | Male
C1        | 30   | Female

Movies:
MovieID   | MovieName
-------   | ---------
M0        | Batman
M1        | Superman</code>

Une CROSS JOIN entre les tables Customers et Movies produira l'ensemble de résultats suivant :

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman
C0 25 Male M1 Superman
C1 30 Female M0 Batman
C1 30 Female M1 Superman

Comprendre INNER JOIN

INNER JOIN, également connu sous le nom d'équijointure, filtre les lignes de deux tables en fonction de conditions d'équivalence spécifiées. Il correspond aux lignes qui ont la même valeur dans la colonne jointe. Par exemple, une INNER JOIN des tables Customers et Movies basée sur la colonne CustomerID renvoie uniquement les lignes où le CustomerID correspond dans les deux tables.

Exemple :

En considérant le même tableau que précédemment, un INNER JOIN basé sur CustomerID produira l'ensemble de résultats suivant :

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman

Sélectionnez CROSS JOIN et INNER JOIN

Le choix entre CROSS JOIN et INNER JOIN dépend du résultat souhaité.

  • Utilisez CROSS JOIN ​​​​​​lorsque vous souhaitez récupérer toutes les combinaisons possibles de lignes de plusieurs tables, quelles que soient les conditions de filtrage.
  • Utilisez INNER JOIN ​​​​lorsque vous souhaitez filtrer les lignes en fonction d'une condition d'égalité spécifique et récupérer uniquement les lignes correspondantes des deux tables.

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!

Déclaration:
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