Quel type de jointure permet de retourner uniquement les lignes ayant des correspondances dans les deux tables ?
Lorsqu’on travaille avec des bases de données relationnelles, il est fréquent d’avoir besoin de combiner des données provenant de plusieurs tables. Pour ce faire, le langage SQL propose différentes formes de jointures (joins), chacune répondant à un besoin spécifique. Parmi celles-ci, une seule permet de retourner uniquement les lignes qui possèdent des correspondances dans les deux tables impliquées : il s’agit de la jointure interne, ou INNER JOIN.
Définition de l’INNER JOIN
L’INNER JOIN est une opération de jointure qui combine les lignes de deux tables en fonction d’une condition de correspondance (généralement une clé étrangère). Seules les lignes pour lesquelles cette condition est satisfaite dans les deux tables sont incluses dans le résultat final.
Autrement dit, si une ligne d’une table n’a pas de correspondance dans l’autre table, elle est exclue du résultat.
Syntaxe SQL
La syntaxe standard d’un INNER JOIN en SQL est la suivante :
|
1 2 3 4 |
SELECT colonnes FROM table1 INNER JOIN table2 ON table1.colonne_commune = table2.colonne_commune; |
Par exemple, supposons deux tables :
clients(id_client, nom)commandes(id_commande, id_client, date)
Pour obtenir uniquement les clients ayant passé au moins une commande, on écrira :
|
1 2 3 4 |
SELECT clients.nom, commandes.date FROM clients INNER JOIN commandes ON clients.id_client = commandes.id_client; |
Ce code ne retournera que les clients qui apparaissent aussi dans la table commandes.
Comparaison avec d’autres types de jointures
Pour mieux comprendre l’INNER JOIN, il est utile de le comparer aux autres types de jointures :
LEFT JOIN (ou LEFT OUTER JOIN) : retourne toutes les lignes de la table de gauche, même sans correspondance à droite (les valeurs manquantes sont remplacées par NULL).
RIGHT JOIN (ou RIGHT OUTER JOIN) : retourne toutes les lignes de la table de droite, même sans correspondance à gauche.
FULL OUTER JOIN : retourne toutes les lignes des deux tables, avec des valeurs NULL là où il n’y a pas de correspondance.
INNER JOIN : seulement les lignes avec correspondance dans les deux tables.
Cas d’usage typiques
L’INNER JOIN est particulièrement utile dans les situations suivantes :
Lister les produits associés à des catégories existantes.
Afficher les employés ayant un poste attribué.
Extraire les ventes liées à des clients valides.
Il permet de filtrer les données incomplètes ou orphelines, ce qui est souvent souhaitable pour des rapports précis ou des analyses métier.
Conclusion
En résumé, si votre objectif est de ne récupérer que les enregistrements présents dans deux tables simultanément, la jointure à utiliser est l’INNER JOIN. C’est l’outil SQL le plus courant et le plus efficace pour croiser des données cohérentes entre plusieurs entités d’une base de données relationnelle.


