T-SQL: Les Jointures  

Les requêtes établies en T-SQL ne sont pas toujours simples qui interrogeant une seule table, généralement on effectue des SELECT qui nécessitent des récupérer l’information à partir de plusieurs tables.
Sous T-SQL, il y a la notion de jointure entre plusieurs tables.
      
      1.      Inner Join
Cette jointure permet de récupérer les lignes de données de la table1 ayant un correspondant dans la table 2 selon la condition précisée.

                         SELECT A.cl1, A.cl2, B.cl1, B.cl2
                         FROM             Table1 AS A
                         INNER JOIN  Table2 AS B
                         ON       A.cl1=B.cl1

On peut écrire INNER JOIN ou JOIN qui est un format abrégé ou directement une virgule entre les deux tables.
Le ON dans ce type de jointure joue le rôle d’un WHERE.
      
      2.      Left join
Cette jointure permet de récupérer toutes les lignes de la table 1 en leurs associant les valeurs qui leurs correspondent dans la table 2 selon la condition.

                        SELECT A.cl1, A.cl2, B.cl1, B.cl2
                        FROM             Table1 AS A
                        LEFT JOIN Table2 AS B
                        ON       A.cl1=B.cl1

On récupère toutes les lignes de table1 et on associe à chaque ligne de la table 1 les colonnes B.cl1 et B.cl2 de la table 2 tel que  A.cl1=B.cl1,
Les lignes de la table 1 qui n’ont pas de correspondant dans la table2 auront B.cl1=Null et B.cl2=Null.

Le LEFT JOIN est équivalent à LEFT OUTER JOIN.
Dans ce type de jointure, le ON permet de faire un lien entre les deux tables
Et le WHERE joue son rôle de filtre.

      3.      Right join
Cette jointure permet de récupérer toutes les lignes de la table2 en leurs associant les valeurs qui leurs correspondent dans la table1 selon la condition.

                          SELECT A.cl1, A.cl2, B.cl1, B.cl2
                          FROM             Table1 AS A
                          RIGHT JOIN Table2 AS B
                          ON       A.cl1=B.cl1

On récupère toutes les lignes de table2 et on associe à chaque ligne de la table2 les colonnes A.cl1 et A.cl2 de la table1 tel que  A.cl1=B.cl1,
Les lignes de la table2 qui n’ont pas de correspondant dans la table1 auront A.cl1=Null et A.cl2=Null.
Le RIGHT JOIN est équivalent à RIGHT OUTER JOIN.
Dans ce type de jointure, le ON permet de faire un lien entre les deux tables
Et le WHERE joue son rôle de filtre.

      4.      Full join
Le FULL JOIN permet de faire l’association entre deux tables dans les deux sens selon une condition.
                    
                    SELECT A.cl1, A.cl2, B.cl1, B.cl2
                    FROM             Table1 AS A
                    FULL JOIN Table2 AS B
                    ON       A.cl1=B.cl1

Les lignes de la table1 n’ayant pas de correspondants dans la table2 auront B.cl1=Null et B.cl2=Null.
Les lignes de la table2 n’ayant pas de correspondants dans la table1 auront A.cl1=Null et A.cl2=Null.




Comments

Popular posts from this blog