Ceci est une ancienne révision du document !
Représentation visuelle des jointures
Il existe 7 types de jointures possibles entre 2 tables.
Inner join
C'est la plus simple, la plus comprise et la plus courante. Cette requête renvoie tous les enregistrements de la table de gauche (table A) qui ont un enregistrement correspondant dans la table de droite (table B).
SELECT <select_list> FROM Table_A AS A INNER JOIN Table_B AS B ON A.Key = B.Key
Left join
Cette requête renvoie tous les enregistrements de la table de gauche (table A), même si l'un d'entre eux correspond à la table de droite (table B). Elle renvoie également tous les enregistrements correspondants de la table de droite.
SELECT <select_list> FROM Table_A AS A LEFT JOIN Table_B AS B ON A.Key = B.Key
Right join
Cette requête renvoie tous les enregistrements de la table de droite (table B), même si certains de ces enregistrements correspondent à ceux de la table de gauche (table A). Elle retournera également tous les enregistrements correspondants de la table de gauche.
SELECT <select_list> FROM Table_A AS A RIGHT JOIN Table_B AS B ON A.Key = B.Key
Outer join
Cette jointure peut également être appelée FULL OUTER JOIN
ou FULL JOIN
.
Cette requête renvoie tous les enregistrements des deux tables, en joignant les enregistrements de la table de gauche (table A) qui correspondent aux enregistrements de la table de droite (table B).
SELECT <select_list> FROM Table_A AS A FULL OUTER JOIN Table_B AS B ON A.Key = B.Key
Left excluding join
Cette requête renvoie tous les enregistrements du tableau de gauche (tableau A) qui ne correspondent à aucun enregistrement du tableau de droite (tableau B).
SELECT <select_list> FROM Table_A AS A LEFT JOIN Table_B AS B ON A.Key = B.Key WHERE B.Key IS NULL
Right excluding join
Cette requête renvoie tous les enregistrements de la table de droite (table B) qui ne correspondent à aucun enregistrement de la table de gauche (table A).
SELECT <select_list> FROM Table_A AS A RIGHT JOIN Table_B AS B ON A.Key = B.Key WHERE A.Key IS NULL
Outer excluding join
Cette requête renvoie tous les enregistrements du tableau de gauche (tableau A) et tous les enregistrements du tableau de droite (tableau B) qui ne correspondent pas.
SELECT <select_list> FROM Table_A AS A FULL OUTER JOIN Table_B AS B ON A.Key = B.Key WHERE A.Key IS NULL OR B.Key IS NULL