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.