Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как произвести иерархический поиск / 3 сообщений из 3, страница 1 из 1
14.08.2001, 10:42
    #32011734
Sergei Almazov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как произвести иерархический поиск
Есть таблица следующей структуры:
ID, Parent, Name, ...

В поле Parent хранится значение ID родительской записи, для записи самого верхнего уровня(в иерархии) Parent=0.
Как создать запрос, который бы возвращал child'ов всех уровней для определенной записи.
Пример: имеем таблицу

1 0 Top level
2 1 Something 1
3 2 Something 1.1
4 2 Something 1.2
5 4 Something 1.2.1
6 4 Something 1.2.2
7 1 Something 2
8 7 Something 2.1
9 7 Something 2.2

Тогда для записи ID=2 запрос должен выдать
3 2 Something 1.1
4 2 Something 1.2
5 4 Something 1.2.1
6 4 Something 1.2.2

Если кто-то сталкивался с этой проблемой или знает, как ее решить, буду очень признателен за ответ.
...
Рейтинг: 0 / 0
14.08.2001, 11:04
    #32011735
ChA+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как произвести иерархический поиск
Судя по твоему примеру имеет смысл прочитать http://www.osp.ru/win2000/sql/2001/05/968.htm
Или воспользоваться обычным LIKE, например:
DECLARE @Level
SET @Level = 2
SELECT * FROM Table1 t WHERE Name LIKE 'Something %' + REPLICATE('.%', @Level - 1)
...
Рейтинг: 0 / 0
14.08.2001, 11:07
    #32011736
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как произвести иерархический поиск
Перевод статьи Joe Celko

Вопрошающему уже послал, все желающие могут взять по ссылке
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как произвести иерархический поиск / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]