У меня есть таблица, как показано нижеPostgreSQL рекурсивного запроса, чтобы получить категорию и подкатегории
Использования рекурсивного заявления я могу получить глубину стола
WITH RECURSIVE category_tree(id, name, depth) AS (
SELECT id, name, ARRAY[id]
FROM category
WHERE parentid IS NULL
UNION ALL
SELECT category.id, category.name, depth || category.id
FROM category_tree
JOIN category ON category.parentid=category_tree.id
WHERE NOT category.id = ANY(depth)
)
SELECT * FROM category_tree ORDER BY id;
Как должен ли я изменить запрос так, чтобы я мог получить результат, как показано ниже (до n-го уровня дерева)?
Я намерен использовать полученный результат для создания карты сайта, как показано ниже:
В настоящее время я пытаюсь использовать LEFT OUTER JOIN с рекурсивным заявлением, но я не удалось найти способ? Может ли кто-нибудь помочь?
Что делать, если у вас есть 4 или 5 уровней? Вы проигнорируете эти данные? – trincot
Нет. Я не собираюсь игнорировать эти данные, поэтому я пытаюсь использовать инструкцию RECURSIVE, чтобы я мог получить до n-го уровня. – praveen
Значит, вы не знаете количество столбцов, которое у вас будет на вашем выходе? Я боюсь, что это невозможно, если вы не построите SQL динамически. – trincot