Изменения документа Рекурсивный запрос

Редактировал(а) Alexandr Fokin 2023/12/16 14:12

От версии 4.3
отредактировано Alexandr Fokin
на 2023/12/16 14:01
Изменить комментарий: Update document after refactoring.
К версии 2.10
отредактировано Alexandr Fokin
на 2022/01/03 14:54
Изменить комментарий: Updated parent field.

Сводка

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.Базы данных 2.SQL.MSSQL.SQL запросы.WebHome
1 +xwiki:Разработка.Базы данных.SQL.MSSQL.SQL запросы.WebHome
Содержимое
... ... @@ -1,5 +3,3 @@
1 -Запрос задействует механизм [[CTE>>doc:Разработка.Базы данных.SQL.MSSQL.TSQL.CTE.WebHome]].
2 -
3 3  {{code language="sql"}}
4 4  WITH RECURSIVE tree (nm, id, level, pathstr)
5 5  AS
... ... @@ -33,18 +33,6 @@
33 33  ORDER BY pathstr
34 34  {{/code}}
35 35  
34 +
36 36  Рекурсивные SQL запросы
37 37  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 -