Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите написать хитровыдуманный запрос
|
|||
|---|---|---|---|
|
#18+
Помогите написать хитровыдуманный запрос, есть иерархическая таблица - боги Древней Греции. У каждой записи, есть поле parent_id - идентификатор родителя записи, level - уровень записи. Уровень 1. Корень - Хаос (дети: Зевс, Посейдон) Уровень 2. Зевс (дети: Афина, Гермес) Посейдон(дети: Тритон) Уровень 3. Афина (дети: Эрхитоний) Гермес (дети: нет) Тритон (дети: нет) Уровень 4. Эрхитоний (дети: нет) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Как итог имеем n-арное дерево, нужно написать хитровыдуманный запрос, который сделает прямой обход этого дерева. В итоге нужно получить список: 1) Хаос 2) Зевс 3) Афина 4) Эрхитоний 5)Гермес 6) Посейдон 7) Тритон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2018, 02:15 |
|
||
|
Помогите написать хитровыдуманный запрос
|
|||
|---|---|---|---|
|
#18+
Я вижу следующие ошибки в постановке задачи. 1) Бога Эрхитония не существует. 2) Вставка в таблицу значения level излишняя, так как level можно вычислить по parent_id. Потенциально ведёт к ошибкам. 3) Противоречие между текстом в постановке задачи и примером таблицы. В тексте задаются пары родитель-потомок, а в таблице пары потомок-родитель. Можно сделать таблицу с несколькими строками для каждого родителя (по одной строке на потомка, и в этом случае необязательна колонка parent_id). То есть, привести в соответствие таблицу с текстом задачи. Для обоих видов таблицы нужное решение можно получить с помощью обхода в глубину, который реализовать с помощью WITH RECURSIVE. Подходящий вид таблицы можно выбрать исходя из того, в каком порядке поступают данные. Я для себя составил примеры запросов WITH RECURSIVE для обоих видов таблицы. но без богов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2018, 10:02 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=1995470]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 161ms |

| 0 / 0 |
