Изменения документа Рекурсивный запрос
Редактировал(а) Alexandr Fokin 2023/12/16 14:12
От версии 2.10
отредактировано Alexandr Fokin
на 2022/01/03 14:54
на 2022/01/03 14:54
Изменить комментарий:
Updated parent field.
К версии 4.1
отредактировано Alexandr Fokin
на 2022/03/19 13:10
на 2022/03/19 13:10
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 - xwiki:Разработка.Базы данных.SQL.MSSQL.SQL запросы.WebHome1 +Разработка.Базы данных.SQL.MSSQL.SQL запросы.WebHome - Содержимое
-
... ... @@ -1,3 +1,5 @@ 1 +Запрос задействует механизм [[CTE>>doc:Разработка.Базы данных.SQL.MSSQL.TSQL.CTE.WebHome]]. 2 + 1 1 {{code language="sql"}} 2 2 WITH RECURSIVE tree (nm, id, level, pathstr) 3 3 AS ... ... @@ -31,6 +31,18 @@ 31 31 ORDER BY pathstr 32 32 {{/code}} 33 33 34 - 35 35 Рекурсивные SQL запросы 36 36 https://habr.com/ru/post/27439/ 38 + 39 +---- 40 + 41 +**Дополнение:** 42 + 43 +В некоторых случаях рекурсивного запроса можно избежать (в случае извлечения из хранилища некоторого агрегата). 44 +Достаточно помимо ключа/отношения Parent-Child, добавить ключ/отношение Root-Child. 45 +Таким образом можно извлечь все поддерево Root элемента за 1 join. 46 +Это немного усложнит модель - в случае выполнения update нужно не забыть обновить оба поля. (Чтобы не допустить состояния, когда родительский элемент принадлежит к другому Root элементу) 47 + 48 +---- 49 + 50 +