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
Post a Comment
Put your comments here, please.
Share with us you vision...