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