|
Запрос на выборку иерархии родителей
#40139170
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
Доброго времени суток, коллеги. Прошу вашей помощи, бьюсь весь день, все решения, приходящие в голову отрабатывают неверно. Суть: есть иерархия отделов (будем называть все это "отделами"). Всего 3 уровня вложенности, есть главный "отдел", у него есть дочерние отделы, а у дочерних отделов есть еще дочерние отделы. Пример цепочки иерархии: 1. Административный департамент => 1.6. Управление административно-хозяйственной деятельности => 1.6.1. Отдел ИТ Структура БД создана таким образом, что внесены ID отдела и ID отдела-родителя для каждой записи. Нужно брать ID отдела-родителя и искать его родителя выше. Единственное адекватное решение в моей голове - рекурсия и ОТВ, но запросы отрабатывают некорректно, либо после 2 уровня некорректно выводят 3 уровень, либо уже на 2 уровне не хотят видеть родителей правильно. Помогите с решением. В итоге необходимо отобразить иерархию в любом виде: либо в столбцах (3 столбца-уровня), либо объединить concat`ом, не суть. Неуспешные попытки: Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
1. Административный департамент 1.1. Административный департамент 1.2. Договорной отдел 1.3. Общий отдел 1.4. Отдел закупок 1.5. Отдел протокольного сопровождения 1.6. Управление административно-хозяйственной деятельности 1.6.1. Отдел ИТ 1.6.2. Управление административно-хозяйственной деятельности 1.7. Управление безопасности 1.8. Управление по обеспечению безопасности 2. Академия Умные дороги 2.1. Академия Умные дороги 2.2. Отдел сетевых программ 2.3. Проектно-аналитический отдел 2.4. Учебно-организационный отдел 3. Аппарат управления 4. Департамент коммуникаций 4.1. Департамент коммуникаций 4.2. Управление по PR-проектам 4.2.1. Отдел по организации и сопровождению мероприятий 4.2.2. Отдел по работе с корпорациями 4.3. Управление Пресс-службы 4.3.1. Отдел по работе со СМИ 4.3.2. Отдел цифровых коммуникаций 4.3.3. Управление Пресс-службы 5. Департамент маркетинга и партнерских отношений 5.1. Департамент маркетинга и партнерских отношений 5.2. Управление маркетинга 5.2.1. Лицензионный отдел 5.2.2. Управление маркетинга 5.3. Управление по развитию бизнеса 5.3.1. Отдел по привлечению новых клиентов 5.3.2. Отдел по организации мероприятий 5.4. Управление по развитию партнерских отношений 6. Департамент по организации корпоративов 7. Департамент по работе с персоналом 8. Департамент по работе с промышленностью 9. Департамент стратегии и планирования 9.1. Аналитический отдел 9.2. Отдел проектного управления 10. Управление Финансового планирования и контроля 11. Финансово-экономический департамент 11.1. Управление бухгалтерского и налогового учета 11.2. Управление казначейства 11.2.1. Операционный отдел 11.3. Финансово-экономический департамент 11.4. Финансово-экономическое управление 12. Юридический департамент 12.1. Управление нормативного обеспечения и договорной работы 12.2. Юридический департамент ... |
||||||||||||||||
:
Изменено: 04.01.2025, 14:31 - AlenaAAAA
Нравится:
Не нравится:
|
||||||||||||||||
04.01.2025, 14:30 |
|
Запрос на выборку иерархии родителей
|
|||
---|---|---|---|
#18+
AlenaAAAA [игнорируется] Я бы сделал временными таблицами. Например, первой таблицей отфильтровал верхние уровни. Второй таблицей отфильтровал подчиненных первому уровню третьей таблицей отфильтровал третий уровень административный Четвертым запросом объединил бы все предыдущие таблицы с полем сортировки по номеру отдела. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2025, 15:24 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=2187108]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 149ms |
0 / 0 |