Встречается на собеседованиях • сегодня
Что такое рекурсия в запросе в БД
Рекурсия в SQL — это возможность запроса вызывать сам себя для обработки иерархических данных. Это реализуется через рекурсивные обобщённые табличные выражения (CTE) с помощью WITH RECURSIVE.
Пример:
sql
WITH RECURSIVE employee_hierarchy AS (
-- Базовый случай (начало иерархии)
SELECT id, name, manager_id, 1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
-- Рекурсивная часть
SELECT e.id, e.name, e.manager_id, eh.level + 1
FROM employees e
JOIN employee_hierarchy eh ON e.manager_id = eh.id
)
SELECT * FROM employee_hierarchy;Нюансы:
- Обязателен
UNION ALLмежду базовым и рекурсивным блоками. - Нужно условие остановки, иначе — бесконечная рекурсия (в примере это неявный выход, когда
JOINне находит строк). - Поддерживается не во всех СУБД (например, MySQL 8.0+, PostgreSQL, SQLite).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы