Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Внизполучить все дочерние эл-ты дерева Найти похожие ветки
← →
sql___ (2008-10-09 17:58) [0]всем привет!
есть табличка с иерархической структурой(SQL Server 2005):
id INT
parentId INT
делаю запрос:
WITH c(id, lev) AS
(SELECT b.id, 1 FROM content_tree AS b WHERE b.parentid = 0
UNION ALL
SELECT b.id, (lev + 1) FROM content_tree AS b INNER JOIN c ON c.id = b.parentid)
SELECT * FROM c
WHERE c.id = 1655
ORDER BY lev
результат:
id | lev
1655 | 2
если же я напишу просто SELECT * FROM c, то все выберется как положено. Что я не так делаю?
← →
sql___ (2008-10-09 19:09) [1]тьфу! Надо было так:
WITH C (ID, ParentID, Text_, NestingLevel) AS
(
SELECT B.ID, B.ParentID, B.Text_, 1 FROM content_tree AS B WHERE ID = 1655
UNION ALL
SELECT B.ID, B.ParentID, B.Text_, (NestingLevel + 1) FROM content_tree AS B
INNER JOIN C ON C.ID = B.parentID
)
SELECT * FROM c
Всем большое спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c