• SQL > Différence entre inner join, left join et right join

      INNER JOIN, LEFT JOIN et RIGHT JOIN déterminent quelles lignes sont incluses dans le résultat selon la correspondance entre les tables.

      INNER JOIN

      > Retourne uniquement les lignes où il y a une correspondance dans les deux tables

      > Les lignes sans correspondance sont exclues

       

      SELECT * FROM Clients
      INNER JOIN Commandes
        ON Clients.id = Commandes.client_id;
      -- Seuls les clients ayant passé commande apparaissent

      LEFT JOIN

      > Retourne toutes les lignes de la table de gauche (première table)

      > Plus les correspondances de la table de droite

      > Si pas de correspondance : valeurs NULL pour les colonnes de droite

       

      -- Tous les clients, même sans commande
      SELECT *
      FROM Clients
      LEFT JOIN Commandes
        ON Clients.id = Commandes.client_id;
      -- Clients sans commande ont NULL pour les colonnes Commandes

      RIGHT JOIN

      > Inverse du LEFT JOIN : toutes les lignes de la table de droite

      > Plus les correspondances de la table de gauche

      > Moins utilisé car on peut généralement réorganiser les tables

       

      -- Toutes les commandes, même sans client (ex: données orphelines)
      SELECT *
      FROM Clients
      RIGHT JOIN Commandes
        ON Clients.id = Commandes.client_id;

      Comparaison visuelle

      Table A           Table B
      id | nom         id | commande
      1  | Alice       1  | Livre
      2  | Bob         3  | Stylo
      3  | Charlie
      
      INNER JOIN (A ∩ B) → Alice (id1) et Charlie (id3)
      LEFT JOIN  (A)     → Alice, Bob (NULL), Charlie
      RIGHT JOIN (B)     → Alice, Charlie, Stylo (NULL pour nom)

      Importance pratique

      > INNER JOIN : "Donne-moi ce qui existe dans les deux"

      > LEFT JOIN : "Donne-moi tout de A, avec les infos de B si elles existent"

      > RIGHT JOIN : "Donne-moi tout de B, avec les infos de A si elles existent"

      Cas d’usage courants

      > INNER JOIN : Analyse de données corrélées, rapports transactionnels

      > LEFT JOIN : Listes complètes avec détails optionnels, détection de données manquantes

      > RIGHT JOIN : Moins courant, souvent remplacé par LEFT JOIN en inversant les tables

      Bonne pratique

      Préférer LEFT JOIN à RIGHT JOIN pour plus de lisibilité. Un RIGHT JOIN peut toujours être réécrit en LEFT JOIN en inversant l’ordre des tables.

       

 

Aucun commentaire

 

Laissez un commentaire