Я создаю меню навигации из списка страниц. таблица выглядит так:MySql sql recursive loop
Table name: pages
id | type | parent | name
-------------------------------
1, 1, null, root1
2, 1, null, root2
3, 2, 2, home
4, 2, 3, child
5, 2, 4, sub_child
6, 3, 5, sub_sub_child
type:
1 = root page/site
2 = page
3 = ...
Моя проблема заключается в том, что с любой страницы, я должен найти корневую страницу. У меня есть столбец parent, который ссылается на родительскую страницу, за исключением корневых страниц.
Я могу иметь несколько корневых страниц в таблице, но каждая страница имеет только один родитель.
Может ли кто-нибудь помочь мне написать рекурсивный запрос?
Я пытаюсь использовать этот запрос, но он не работает:
with recursive pages (id, parent) as
(
select pages.id,
pages.parent,
from pages
where pages.id = 4
union all
select pages.id,
pages.parent,
from pages
inner join pages p on p.id = pages.parent
)
select id
from pages;
Благодаря
1. Отправьте запрос по этому вопросу. 2. Какую базу данных вы используете? – npe
Я использую MySql 5.5.8 – blaazzze
AFAIK mysql не поддерживает ничего подобного. – Matzi