Self join visualization: Comprendre les auto jointures avec la visualisation du self join

Par :

,le

Table source
Ligne conservée dans le résultat Ligne non conservée
Requête SQL

				
Résultat de la jointure
Paires correspondantes

Cette section montre quelle ligne (alias 1) correspond à quelle ligne (alias 2) via la clé auto-référente.

Notre outil de visualisation des jointures SELF JOIN permet d’explorer ce concept de manière interactive et visuelle.Le SELF JOIN est une jointure SQL qui relie une table à elle-même en utilisant deux alias distincts pour distinguer les deux instances. Cette technique est utilisée pour modéliser des relations hiérarchiques, comme les liens entre un employé et son manager.

Comment fonctionne l’outil

L’outil affiche en temps réel l’effet d’un SELF JOIN selon le jeu de données et le type de jointure sélectionnés. Quatre sections sont disponibles : la table source, la requête SQL générée, le résultat de la jointure et les paires correspondantes. Chaque section peut être masquée ou affichée via les cases à cocher situées en haut de l’interface.

La table source et la colonne auto-référente

La table source contient une colonne de clé étrangère (FK) qui pointe vers la clé primaire (PK) de la même table. Cette colonne auto-référente est surlignée en bleu dans l’en-tête pour la distinguer visuellement des colonnes ordinaires. Les lignes conservées dans le résultat sont affichées en vert, les lignes exclues en rouge.

Les deux types de jointure disponibles

Avec un INNER JOIN, seules les lignes ayant une correspondance valide dans la colonne FK sont retournées dans le résultat. Les lignes dont la FK est NULL sont exclues, car elles représentent les éléments racines sans parent ou supérieur hiérarchique. Avec un LEFT JOIN, toutes les lignes de la table sont retournées, y compris celles dont la FK est NULL.

Les jeux de données disponibles

Huit jeux de données couvrent des cas d’usage concrets du SELF JOIN dans des contextes professionnels variés:

  • « Employés et managers » modélise une hiérarchie RH où chaque employé référence son supérieur via manager_id.
  • « Menus de navigation » et « Catégories et sous-catégories » illustrent des arbres à plusieurs niveaux de profondeur
  • « Tâches et dépendances » représente une chaîne de prérequis où chaque tâche référence celle qui la bloque.
  • « Commentaires et réponses » modélise un système de threads où chaque réponse pointe vers son commentaire parent.
  • « Régions et pays » organise des zones géographiques sur trois niveaux : continent, pays et région.
  • « Comptes bancaires et virements » relie chaque compte à son destinataire de virement au sein de la même table.
  • « Produits et remplacements » liste les produits discontinus en les associant à leur successeur dans le catalogue.

Ces huit exemples montrent que le SELF JOIN s’applique à tout modèle de données contenant une relation récursive sur une même entité.

La section paires correspondantes

La section « Paires correspondantes » affiche côte à côte chaque ligne de l’alias 1 et la ligne associée de l’alias 2. Cette vue permet de comprendre concrètement quelle ligne est liée à quelle autre via la clé auto-référente. En mode INNER JOIN, seules les paires valides sont affichées ; en LEFT JOIN, les lignes sans correspondance n’apparaissent pas dans cette section.

Quand utiliser un SELF JOIN

Le SELF JOIN est adapté aux structures où chaque enregistrement peut être relié à un autre enregistrement de la même entité. Les cas typiques sont les organigrammes, les arbres de navigation, les systèmes de tickets et les catalogues de produits versionnés. Pour des relations de type N à N, comme un réseau d’amis, une table de liaison séparée est nécessaire et le SELF JOIN ne suffit plus.