PaliSkill
SQL avancé

Leçon 3 / 9 — Chapitre 10: Mise en pratique : ressources humaines

Cas d'usage : tous les subordonnés d'un manager

En partant d'un seul collaborateur plutôt que de la racine, une CTE récursive retrouve tous ses subordonnés, directs et indirects.

WITH RECURSIVE subordonnes AS (
  SELECT id, nom, manager_id FROM collaborateurs WHERE id = 2

  UNION ALL

  SELECT c.id, c.nom, c.manager_id
  FROM collaborateurs c
  JOIN subordonnes s ON c.manager_id = s.id
)
SELECT * FROM subordonnes WHERE id != 2;

Le terme d'ancrage démarre sur Moussa (id 2) uniquement. La récursion ajoute ses subordonnés directs, Ibrahim et Khadija — qui n'ont eux-mêmes aucun subordonné, la récursion s'arrête donc là. Le WHERE id != 2 final retire Moussa lui-même du résultat, ne gardant que ses subordonnés. Résultat : 2 lignes.

À retenir :

  • Restreindre le terme d'ancrage à un seul collaborateur isole toute sa branche de subordonnés, quelle que soit sa profondeur.
  • Exclure la ligne de départ après coup (WHERE id != 2) permet de ne garder que les vrais subordonnés, sans le manager lui-même.

À vous de jouer : le nom 'Ousmane' apparaît-il dans ce résultat ? Justifiez à partir de son manager direct.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

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

Votre paiement est vérifié avant l'activation de l'accès