La jointure (JOIN) est l'un des concepts les plus importants et les plus utilisés en SQL (Structured Query Language). Elle sert essentiellement à combiner les lignes de deux tables ou plus en une seule base de données, en s'appuyant sur une relation entre elles. Il s'agit d'un outil indispensable pour travailler avec des bases de données relationnelles, dans lesquelles les informations sont réparties dans plusieurs tables. Sans l'utilisation des JOIN, l'extraction de données pertinentes couvrant plusieurs tables serait bien plus compliquée et moins efficace.
Types de JOIN
Il existe plusieurs types de JOIN en SQL, chacun étant conçu pour répondre à des situations et à des besoins de requête différents. Nous décrivons ci-dessous les principaux types de JOIN :
Jointure interne
Les Jointure interne C'est le type de JOIN le plus courant. Il sert à ne renvoyer que les lignes dont les valeurs coïncident dans les deux tables concernées. En d'autres termes, si les lignes d'une table n'ont pas d'équivalent dans l'autre table, elles ne seront pas incluses dans le résultat final. Ce type de JOIN est très utile lorsqu'on souhaite extraire uniquement les données pertinentes dans les deux tables.
Jointure gauche
Les left join (ou jointure externe gauche) renvoie toutes les lignes de la table de gauche ainsi que les lignes correspondantes de la table de droite. S'il n'y a pas de correspondance, les lignes de la table de droite apparaîtront comme NULL dans le résultat. Ce type de JOIN est utile lorsque l'on souhaite obtenir toutes les lignes de la table principale, qu'elles aient ou non une correspondance dans la table secondaire.
Jointure à droite
Les jointure à droite (ou jointure externe droite) est similaire au « left join », mais avec les tables inversées. Il renvoie toutes les lignes de la table de droite et les lignes correspondantes de la table de gauche. S'il n'y a pas de correspondance, les lignes de la table de gauche apparaîtront comme NULL dans le résultat. On l'utilise lorsqu'il faut donner la priorité à la table de droite dans la requête.
Exemples d'utilisation
Pour mieux comprendre le fonctionnement de ces séquences JOIN, examinons quelques exemples concrets.
Exemple d'inner join
Supposons que nous ayons deux tables : Clients y Commandes. Le tableau Clients contient des informations sur les clients d'un magasin, et la table Commandes contient les commandes passées par ces clients.
SELECT Clients.Nom, Commandes.DateCommande
FROM Clients
INNER JOIN Commandes
ON Clients.IDClient = Commandes.IDClient;
Dans cet exemple, le INNER JOIN renvoie une liste des noms des clients ainsi que les dates auxquelles ils ont passé des commandes, mais uniquement pour les clients ayant passé au moins une commande.
Exemple de jointure gauche
En utilisant les mêmes tableaux Clients y Commandes, nous souhaitons maintenant obtenir la liste de tous les clients, y compris ceux qui n'ont pas passé de commande.
SELECT Clients.Nom, Commandes.DateCommande
FROM Clients
LEFT JOIN Commandes
ON Clients.IDClient = Commandes.IDClient;
Le présent LEFT JOIN renverra une liste de tous les clients, et si un client n'a pas passé de commande, la colonne Date de la commande apparaîtra comme NULL.
Exemple de jointure droite
Pour finir, voyons comment fonctionne un Jointure à droite en utilisant les mêmes tableaux.
SELECT Clients.Nom, Commandes.DateCommande
FROM Clients
RIGHT JOIN Commandes
ON Clients.IDClient = Commandes.IDClient;
Ici, le RIGHT JOIN renverra toutes les commandes, y compris celles qui ne sont peut-être pas associées à un client dans la table Clients. Cela pourrait se produire si, par exemple, un client avait été supprimé de la table Clients mais leurs commandes figurent toujours dans la base de données.
Nous te proposons ci-dessous des formations connexes qui pourraient t'intéresser :


