T-SQL дерево поискT-SQL дерево поиск Выберите из множества узлов, если они находятся под родителем
Выберите из множества узлов, если они находятся под родителем
У меня есть очень большое дерево в записи MSSQL Db (80000+). Мой клиент запросил быстрый поиск дерева с помощью команды LIKE
. Команда LIKE
возвращает < 500 записей.
Есть ли какая-нибудь рекурсивная команда, которая будет проверять дерево каждого из них быстро, чтобы увидеть, находятся ли они под определенным узлом?
Edit: Я думал, что это было довольно ясно, однако ....
Я на SQL Server 2005.
Table Schema
- (pK) Id
- (fK) ParentId
- FirstName
- LastName
У меня есть рекурсивные вызовы, которые способны пойти вниз несколько уровней быстро. однако для выполнения поиска по имени мне пришлось бы опросить все дерево, которое может быть несколько сотен уровней, и это не вариант. Я надеялся на помощь в разработке запроса, чтобы сначала выполнить поиск по всей таблице для совпадения имен и отфильтровать записи, которые не являются частью рассматриваемого дерева.
Пожалуйста, покажите нам свою схему таблицы, какой движок базы данных и версию вы используете (DB2, SQL Server?). Как бы то ни было, ваш вопрос может быть закрыт как «Не настоящий вопрос» – Lamak