CTE recursiva Recursive CTE
Función de SQL: sintaxis WITH RECURSIVE para consultas recursivas. Uso: recorrer estructuras de árbol (jerarquía organizativa, árboles de categorías), recorridos de grafos, generar series numéricas.
Ejemplo clásico: encontrar todos los subordinados de un jefe.WITH RECURSIVE subs AS (SELECT id, name, boss_id FROM employees WHERE id = ? UNION SELECT e.id, e.name, e.boss_id FROM employees e JOIN subs s ON e.boss_id = s.id) SELECT * FROM subs;
Estándar SQL desde 1999, pero PostgreSQL tiene una buena implementación; MySQL lo consiguió primero en la versión 8.0 (2018). Riesgo: recursión infinita sin condición de terminación → el planificador no puede parar, la consulta se cuelga. Las bases de datos de grafos modernas (Neo4j, Memgraph) hacen los recorridos de grafos más eficientes, pero las CTE de SQL bastan para la mayoría de consultas de árboles.