Consulta recursiva
Una consulta SQL que se llama a sí misma para recorrer jerarquías y grafos — se implementa con WITH RECURSIVE. La forma estándar de traer subárboles completos o cadenas de ancestros de una tabla en modelo de lista de adyacencia (parent_id).
Mecánica: un CTE recursivo tiene dos partes — un caso base (las filas de partida, por ejemplo un nodo concreto) y un paso recursivo que hace join contra el propio CTE para traer el siguiente nivel (por ejemplo, los hijos). La base de datos itera hasta que el paso deja de devolver filas. Casos de uso: «traer todas las subcategorías», «el hilo completo de comentarios», «el camino más corto en un grafo», «todos los jefes por encima de un empleado». Compatible con PostgreSQL, SQL Server, Oracle, MySQL 8+ y SQLite. Trampas: sin una condición que garantice la terminación, un grafo cíclico puede provocar un bucle infinito (algunas bases de datos tienen protección CYCLE); los árboles profundos pueden volverse lentos. Es el «pegamento» que hace práctica la lista de adyacencia. Relacionado con la lista de adyacencia y el CTE.