Я использую SQL Server.T-Sql поиск по иерархии
У меня есть таблица групп с двумя целыми столбцами:
MEGR_KEY
MEGR_KEY1
MEGR_KEY
является первичным ключом группы. Каждая группа может иметь подгруппы.
К примеру - у меня есть группа 1195:
MEGR_KEY
= 1195
Есть подгруппы 1195:
MEGR_KEY = 9484
MEGR_KEY1 = 1195
и
MEGR_KEY = 7494
MEGR_KEY1 = 1195
В основном MEGR_KEY1
говорит, какая группа является родителем.
Проблема у меня есть, как найти все MEGR_KEY
подгруппы иерархически, учитывая только имя корневой группы? Скажем, из предыдущего примера существует 1195 корневая группа. Уже есть две подгруппы: 7494 и 9484. Теперь эти две подгруппы также могут быть родительскими группами для некоторых других групп. Итак, мне нужно найти строки, где MEGR_KEY1
= 7494 ИЛИ MEGR_KEY1
= 9484. Как найти все подгруппы, если задан номер группы (MEGR_KEY)? У меня проблема с написанием запроса для этого.
Берут взглянуть на рекурсивные самосоединения – rbr94