Jointures dans SQL Server : types et exemples
⚡ Résumé intelligent
Dans SQL Server, les jointures combinent les lignes de deux tables ou plus en fonction d'une colonne liée, en utilisant les jointures INNER, LEFT OUTER, RIGHT OUTER et FULL OUTER pour contrôler quelles lignes correspondantes et non correspondantes apparaissent dans le résultat.
Que sont les jointures dans SQL Server ?
Les données peuvent être récupérées à partir de plusieurs tables en utilisant l'instruction JOIN dans SQL ServerUne jointure (JOIN) combine les lignes de deux tables ou plus en fonction d'une colonne commune, le plus souvent une colonne de correspondance. clé primaire assorti à un clé étrangèreIl existe principalement quatre types de jointures dans SQL Server :
- Jointure interne / jointure simple
- Jonction extérieure gauche / jonction gauche
- Jonction extérieure droite / jonction droite
- JOINTURE EXTÉRIEURE COMPLÈTE
Le tableau ci-dessous récapitule les lignes renvoyées par chaque type de jointure :
| Type de jointure | Lignes renvoyées |
| JOINTURE INTERNE | Seules les lignes où la condition de jointure correspond dans les deux tables. |
| JOINT EXTERIEUR GAUCHE | Toutes les lignes du tableau de gauche, plus les lignes correspondantes du tableau de droite (NULL lorsqu'aucune ne correspond). |
| JOINT EXTÉRIEUR DROIT | Toutes les lignes du tableau de droite, plus les lignes correspondantes du tableau de gauche (NULL lorsqu'aucune ne correspond). |
| JOINTURE EXTÉRIEURE COMPLÈTE | Toutes les lignes des deux tables, avec des valeurs NULL lorsque la condition n'est pas remplie. |
Les exemples ci-dessous utilisent deux les tablesLes tables « Étudiants » et « Frais de scolarité » sont jointes sur la base de leur colonne d'admission commune. Chaque section explique un type de jointure avec sa syntaxe, un exemple de requête et le résultat.
JOINTURE INTERNE
Ce type d’ SQL Server La fonction JOIN renvoie les lignes de toutes les tables pour lesquelles la condition de jointure est vraie. Elle accepte la syntaxe suivante :
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Nous utiliserons les deux tableaux suivants pour illustrer cela. Le tableau « Étudiants » ci-dessous répertorie chaque étudiant et son numéro d’admission :
Le tableau des frais ci-dessous indique le montant payé pour chaque numéro d'admission :
La commande suivante illustre une jointure interne (INNER JOIN) dans SQL Server à l'aide d'un exemple :
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
La commande renvoie le résultat suivant, affichant uniquement les numéros d'admission présents dans les deux tableaux :
Nous pouvons identifier les étudiants qui ont réglé leurs frais d'inscription. Nous avons utilisé la colonne présentant des valeurs communes aux deux tableaux, à savoir la colonne « admission ».
JOINT EXTERIEUR GAUCHE
Ce type de jointure renvoie toutes les lignes de la table de gauche ainsi que les enregistrements de la table de droite ayant des valeurs correspondantes. Par exemple :
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Le code renvoie le résultat suivant, keeping chaque étudiant, même lorsqu'aucun relevé de frais ne correspond :
Les enregistrements sans valeurs correspondantes sont remplacés par des NULL dans les colonnes respectives.
JOINT EXTÉRIEUR DROIT
Ce type de jointure renvoie toutes les lignes du tableau de droite et uniquement celles dont les valeurs correspondent dans le tableau de gauche. Par exemple:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
L'instruction OUTER JOIN dans SQL Server renvoie le résultat suivant :
La raison du résultat ci-dessus est que toutes les lignes du tableau Frais sont disponibles dans le tableau Étudiants lorsqu'elles correspondent dans la colonne d'admission.
JOINTURE EXTÉRIEURE COMPLÈTE
Ce type de jointure renvoie toutes les lignes des deux tables, avec des valeurs NULL lorsque la condition de jointure n'est pas vérifiée. Par exemple :
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Le code renvoie le résultat suivant pour les requêtes FULL OUTER JOIN dans SQL, en combinant chaque ligne des deux tableaux :







