Une requête récursive (with recursive) s'appelle elle-même pour parcourir des hiérarchies (arborescence de categories, organigramme).
Structure
WITH RECURSIVE cte AS (
SELECT ... (cas de départ)
UNION ALL
SELECT ... FROM table JOIN cte ... (étape répétée)
)Exemple (table categories, hiérarchie parent/enfant) :
WITH RECURSIVE arbre AS (
SELECT id, nom, parent_id, 0 AS niveau
FROM categories WHERE parent_id IS NULL
UNION ALL
SELECT c.id, c.nom, c.parent_id, a.niveau + 1
FROM categories c JOIN arbre a ON c.parent_id = a.id
)
SELECT * FROM arbre;
-> chaque categorie avec sa profondeur dans l'arborescenceEnvie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →