![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.06.2015
Сообщений: 164
|
![]()
СУБД postgresql.
Помогите написать хитровыдуманный запрос, есть иерархическая таблица - боги Древней Греции. У каждой записи, есть поле parent_id - идентификатор родителя записи, level - уровень записи. Уровень 1. Корень - Хаос (дети: Зевс, Посейдон) Уровень 2. Зевс (дети: Афина, Гермес) Посейдон(дети: Тритон) Уровень 3. Афина (дети: Эрхитоний) Гермес (дети: нет) Тритон (дети: нет) Уровень 4. Эрхитоний (дети: нет) Код:
Как итог имеем n-арное дерево, нужно написать хитровыдуманный запрос, который сделает прямой обход этого дерева. В итоге нужно получить список 1) Хаос 2) Зевс 3) Афина 4) Эрхитоний 5)Гермес 6) Посейдон 7) Тритон |
![]() |
![]() |
![]() |
#2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Копать надо в сторону рекурсивных запросов: https://habr.com/post/269497/
Там есть очень похожий пример, только порядок выдачи неправильный. Видимо, надо прикручивать хитрую сортировку |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите написать запрос | qvernaut | SQL, базы данных | 6 | 26.11.2015 20:26 |
помогите написать SQL запрос | Vitaliya_1619 | Помощь студентам | 1 | 23.09.2015 08:16 |
написать запрос, помогите | Sadran | SQL, базы данных | 2 | 08.09.2015 12:49 |
Помогите написать запрос | l_m_l | SQL, базы данных | 2 | 10.10.2008 20:09 |
Помогите написать SQL запрос | Vedrus | SQL, базы данных | 1 | 22.07.2008 13:21 |