PaliSkill
← SQL Intermédiaire

Leçon 1 / 9 — Chapitre 2: Jointures avancées et combinées

SELF JOIN : comparer des lignes d'une même table

Un SELF JOIN joint une table avec elle-même — utile pour comparer des lignes entre elles, par exemple pour trouver des paires de produits qui partagent une caractéristique.

SELECT a.nom AS produit_a, b.nom AS produit_b, a.categorie
FROM produits a
JOIN produits b ON a.categorie = b.categorie AND a.id < b.id;

produits est utilisée deux fois, sous deux alias différents (a et b) — c'est ce double alias qui rend le SELF JOIN possible : sans lui, le moteur SQL ne saurait pas distinguer les deux occurrences de la table.

La condition a.categorie = b.categorie associe des produits de même catégorie. a.id < b.id évite deux pièges à la fois : qu'un produit se retrouve associé à lui-même (a.id = b.id), et qu'une même paire apparaisse deux fois dans les deux sens (Cahier-Stylo et Stylo-Cahier).

Sur produits, seules deux catégories comptent plus d'un produit : papeterie (Cahier id 1, Stylo id 2) et hygiène (Savon id 3, Dentifrice id 6). Le résultat contient donc 2 lignes : Cahier/Stylo et Savon/Dentifrice. Boisson et alimentaire, avec un seul produit chacune, ne forment aucune paire.

À retenir :

  • Un SELF JOIN joint une table avec elle-même, via deux alias différents obligatoires pour la distinguer.
  • Une condition comme a.id < b.id évite qu'une ligne se compare à elle-même et qu'une paire apparaisse deux fois.
  • Une catégorie qui ne contient qu'une seule ligne ne produit aucune paire dans un SELF JOIN de ce type.

À vous de jouer : sur produits, écrivez la condition qui formerait des paires de produits de même catégorie ET de prix identique.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que l'attestation finale.

7 500 XOF / 11,43 € / 12,46 $

Débloquez les 87 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.