Как отобразить потомков (не только прямых) по условию, где на входе ID родителя
Существует таблица вида:
Для наглядности:
Есть необходимость вывести потомков для родителя (по id родителя). Т.е. в результате должны участвовать только записи из результата:
SELECT id, name, parent_id
FROM dbo.test2
WHERE id NOT IN (SELECT parent_id FROM dbo.test2)
Но как мне выводить потомков для конкретного родителя (не обязательно прямого) по id родителя (это, к сожалению, обязательное условие), т.е. если в условие поступает WHERE id = 1 (для "Задача1"), то отобразить записи
стена
забор
если в условие поступает WHERE id = 2 (для "покраска"), то так же отобразить записи
стена
забор
если, к примеру, в условие поступает WHERE id = 6 (для "монтаж"), то отобразить
люстра
гардина
проводка
Ответы (1 шт):
Автор решения: t0lik
→ Ссылка
Смотрите в сторону рекурсивные запросов, например как тут Understanding SQL Server recursive CTE

