Il existe 7 types de jointures possibles entre 2 tables.
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
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
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
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
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
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
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