Parcours de hiérarchies

Une hiérarchie, comme un organigramme ou une arborescence de catégories, se stocke avec une colonne parent référençant la même table. Une CTE récursive la parcourt en partant de la racine, en suivant les liens parent-enfant, et peut calculer le niveau ou le chemin de chaque nœud.

Exemple

WITH RECURSIVE arbre AS (
  SELECT id, parent_id, 0 AS niveau FROM categories WHERE parent_id IS NULL
  UNION ALL
  SELECT c.id, c.parent_id, a.niveau + 1 FROM categories c JOIN arbre a ON c.parent_id = a.id
)
SELECT * FROM arbre;

Notions voisines

Tout le glossaire