Sens Pluriel explore la polysémie des mots à travers les cultures : bouddhisme tibétain, industrie durable, linguistique et bien-être.Explorer nos dossiers →
Linguistique et étymologie

Jointures : les types et leurs résultats

Une jointure SQL rassemble, dans une même requête, des informations réparties dans plusieurs tables reliées par une condition. Elle peut associer un client à ses commandes, un rédacteur à ses articles ou un employé à son service. Le…

Jointures : les types et leurs résultats

Une jointure SQL rassemble, dans une même requête, des informations réparties dans plusieurs tables reliées par une condition. Elle peut associer un client à ses commandes, un rédacteur à ses articles ou un employé à son service.


Le type choisi détermine quelles lignes apparaissent lorsque la correspondance manque d’un côté ou de l’autre. Pour lire correctement le résultat, il faut donc comprendre les lignes conservées, les valeurs NULL et les cas particuliers présentés ci-dessous.


A retenir :


  • Correspondances exactes entre tables pour des résultats ciblés
  • Conservation des lignes principales grâce à la jointure gauche
  • Repérage des absences avec les valeurs NULL et les lignes orphelines
  • Contrôle du produit cartésien avant toute jointure croisée volumineuse

Types de jointures SQL et lignes conservées


Ces distinctions deviennent concrètes lorsqu’on suit les mêmes données à travers plusieurs requêtes. Prenons quatre employés, dont un sans service, et trois services, dont un sans employé.

A lire également :  Durées de conservation : les traduire techniquement

Jointure interne et correspondances exactes


Dans cette comparaison, la jointure interne, aussi appelée INNER JOIN, ne conserve que les lignes appariées dans les deux tables. Une condition courante relie ainsi employes.id_service à services.id_service.


Martin, Durand et Petit apparaissent avec leur service, tandis que Moreau et le service Marketing sont absents. Selon Microsoft Learn, une jointure combine les lignes en fonction d’une condition entre les tables concernées.


Type SQL Lignes conservées Dans l’exemple
INNER JOIN Correspondances des deux côtés Trois employés avec service
LEFT JOIN Toutes les lignes de gauche Moreau reste présent
RIGHT JOIN Toutes les lignes de droite Marketing reste présent
FULL JOIN Toutes les lignes des deux tables Moreau et Marketing apparaissent


Jointures externes gauche, droite et complète


À partir de cette intersection, les jointures externes préservent aussi les lignes sans partenaire. La jointure gauche conserve toute la table placée après FROM et affiche des valeurs NULL pour les colonnes droites manquantes.


La jointure droite applique la même logique à la table de droite, tandis que la jointure externe complète garde les lignes des deux côtés. Selon PostgreSQL, les jointures externes ajoutent des lignes non appariées et complètent les colonnes manquantes par NULL.

A lire également :  Pourquoi un même mot peut-il porter plusieurs sens ? Le cas de la polysémie

Choix selon les lignes :


  • INNER JOIN pour ne garder que les associations établies
  • LEFT JOIN pour préserver toute la table principale
  • RIGHT JOIN pour conserver toutes les lignes de droite
  • FULL JOIN pour repérer les absences dans les deux tables

« Dans cet exemple pédagogique, je choisis LEFT JOIN pour afficher chaque employé. Le service reste renseigné uniquement lorsqu’une association existe. »

Scénario pédagogique


Résultats particuliers et pièges des jointures


Une fois les lignes attendues définies, certaines formes de jointure exigent une vigilance supplémentaire. La structure des tables, la répétition des clés et le moteur SQL peuvent modifier la forme ou le volume du résultat.

Jointure croisée et produit cartésien


Contrairement aux jointures précédentes, une jointure croisée associe chaque ligne d’une table à chaque ligne de l’autre. Ce produit cartésien peut faire croître fortement le résultat, surtout lorsque les tables contiennent beaucoup d’enregistrements.

A lire également :  Erreurs de visualisation : ce qui trompe le lecteur

Selon MySQL Reference Manual, CROSS JOIN produit les combinaisons entre les lignes des tables concernées. Avant de l’utiliser, vérifiez que cette multiplication répond au besoin, plutôt que d’indiquer par erreur une condition de jointure manquante.


Contrôles avant exécution :


  • Vérification des clés et des correspondances attendues
  • Recherche des valeurs NULL dans les colonnes de liaison
  • Contrôle des doublons susceptibles de multiplier les résultats
  • Validation de l’absence de produit cartésien involontaire

Jointure naturelle et jointure réflexive


Au-delà des formes les plus courantes, une jointure naturelle rapproche automatiquement des colonnes portant le même nom. Cette simplicité peut devenir risquée si plusieurs colonnes homonymes existent sans représenter le même lien.


Une jointure réflexive, ou SELF JOIN, relie une table à elle-même en lui donnant deux alias distincts. Elle sert, par exemple, à associer chaque salarié à son responsable lorsque les deux identifiants figurent dans la table des employés.


Situation Approche Point de vigilance
Employé sans service LEFT JOIN depuis employes Service affiché à NULL
Service sans employé RIGHT JOIN ou LEFT JOIN inversé Employé affiché à NULL
Éléments non appariés des deux côtés FULL JOIN Disponibilité variable selon le moteur
Salarié et responsable dans une table SELF JOIN avec alias Alias distincts et condition explicite


« Dans ce scénario fictif, je compare les deux alias pour retrouver le responsable. La condition relie l’identifiant du responsable à celui d’un salarié. »

Scénario pédagogique


« Pour détecter les services sans équipe, je pars de la table des services. Les colonnes d’employés absentes signalent les associations manquantes. »

Exemple illustratif


« Mon avis pédagogique : expliciter la condition ON rend la jointure plus lisible. Cela facilite aussi la vérification des colonnes utilisées. »

Avis éditorial


Source : « Joins (SQL Server) », Microsoft Learn ; « Table Expressions », PostgreSQL Documentation ; « JOIN Clause », MySQL Reference Manual.

À retenir

Un mot qui se comprend dossier après dossier

Qu'il s'agisse de philosophie bouddhiste, de méditation, de culture tibétaine, d'industrie durable, de linguistique ou de bien-être, chaque rubrique raconte une facette différente de la même question : comment un même mot peut porter, à la fois, une pensée millénaire et un usage bien actuel. Rien n'est figé : chaque contexte nouveau peut encore faire évoluer ce sens.

Pour aller plus loin

  • Comparer plusieurs sources avant de juger la portée d'une traduction ou d'une définition
  • Replacer chaque terme dans son contexte culturel réel, pas seulement sa traduction littérale
  • S'intéresser aux usages vivants de la langue autant qu'aux définitions figées
  • Observer comment un même mot évolue d'un domaine à l'autre au fil du temps