← Retour à la référence SQL

SELF JOIN

Catégorie : jointures

Jointure d'une table avec elle-même, utilisant des alias distincts. Utile pour les relations hiérarchiques ou comparer des lignes d'une même table.

📝 Syntaxe

SELECT t1.colonnes, t2.colonnes FROM table t1 INNER JOIN table t2 ON t1.colonne = t2.colonne_liee

💡 Exemples

SELECT e1.nom AS employe, e2.nom AS manager FROM employes e1 INNER JOIN employes e2 ON e1.manager_id = e2.id
Liste des employés avec leur manager

🎯 Exercice

Trouver les paires d'élèves nés le même jour (table: élèves, colonne: date_naissance)

Voir la solution
SELECT e1.nom, e2.nom FROM élèves e1 INNER JOIN élèves e2 ON e1.date_naissance = e2.date_naissance AND e1.id < e2.id

⚠️ Pièges courants

  • Oublier d'utiliser des alias différents rend la requête ambiguë
  • Mauvaise condition ON peut créer des boucles infinies ou des résultats incorrects
Pixel