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

CROSS JOIN vs INNER JOIN en SQL : quand utiliser chaque type de jointure ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-22 10:16:09608parcourir

CROSS JOIN vs. INNER JOIN in SQL: When to Use Each Join Type?

Jointure croisée (CROSS JOIN) et jointure interne (INNER JOIN) en SQL : comparaison complète

SQL propose deux types de connexion distincts : CROSS JOIN et INNER JOIN, chaque type de connexion a ses propres scénarios d'application. Cet article examine en profondeur les différences entre ces deux types de connectivité, en soulignant leurs avantages et leurs cas d'utilisation.

CROSS JOIN : produit cartésien

Une jointure croisée, également connue sous le nom de produit cartésien, combine chaque ligne du premier tableau avec chaque ligne du deuxième tableau. Cela générera une nouvelle table contenant toutes les combinaisons possibles de lignes de la table jointe.

Grammaire :

<code class="language-sql">SELECT *
FROM Table1 CROSS JOIN Table2</code>

Exemple :

Considérons une jointure croisée entre la table 'Clients' et la table 'Films' :

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies</code>

Cette requête renverra toutes les paires possibles de client et de film, ce qui entraînera un grand nombre de lignes.

INNER JOIN : Limiter les résultats

La jointure interne renvoie uniquement les lignes qui satisfont aux conditions spécifiées dans la clause ON. Il sélectionne uniquement les lignes des deux tableaux dont les valeurs correspondent.

Grammaire :

<code class="language-sql">SELECT *
FROM Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column</code>

Exemple :

En utilisant la même table que précédemment, créons une jointure interne en utilisant la colonne CustomerID :

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID</code>

Cette requête ne renverra que CustomerID lignes correspondantes de la table « Clients » et de la table « Films », fournissant des résultats plus pertinents et filtrés.

Sélectionnez le type de connexion

Le choix des jointures croisées et des jointures internes dépend des exigences spécifiques de la requête.

  • CROSS JOIN : Utilisé lorsque vous avez besoin de toutes les combinaisons possibles de lignes dans deux tableaux.
  • INNER JOIN : Utilisé lorsque vous devez récupérer uniquement les lignes de deux tables qui ont des valeurs correspondantes.

Généralement, il est recommandé d'utiliser des jointures internes en raison de leur plus grande efficacité et de leur capacité à filtrer les résultats, tandis que les jointures croisées sont utiles dans des scénarios spécifiques où un produit cartésien est requis.

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