Mohd Wasif Ответов: 1

Как обновить столбец таблицы в соответствии с иерархией в SQL


Привет, у меня есть данные, как показано ниже, и мы предполагаем, что родительский узел, где Id=Parent_Id, так что есть три верхних родителя(1,5,7).

Id	Parent_Id	Title
1	1	Parent1
2	1	
3	2	
5	5	Parent2
6	5	
7	7	Parent3
8	7	
9	8	


Я хочу обновить результат для всех потомков родительского узла, и результат должен быть таким, как показано ниже.

Id	Parent_Id	Title
1	1	Parent1
2	1	Parent1
3	2	Parent1
5	5	Parent2
6	5	Parent2
7	7	Parent3
8	7	Parent3
9	8	Parent3


Что я уже пробовал:

Я могу обновить родителя до его непосредственного потомка, поэтому я не могу обновить плитку уровня 3.

Пожалуйста, подскажите, как действовать дальше.

1 Ответов

Рейтинг:
0

MadMyche

Ваши элементы "уровня 3" не являются непосредственными дочерними элементами родителя, поэтому они не будут обновляться вместе с запросом.

Id	Parent_Id	Title
1	1	Parent1
2	1	// Child of 1 (Parent1)
3	2	// Child of 2, grandchild of 1 (Parent1)
5	5	Parent2
6	5	// Child of 5 (Parent2)
7	7	Parent3
8	7	// Child of 7 (Parent3)
9	8	// Child of 8, grandchild of 7 (Parent3)
Вам нужно будет запустить второй запрос для внуков, чтобы они соответствовали родителям, что-то вроде этого должно помочь вам начать работу
UPDATE t1
SET    t1.Title = t2.Title
FROM   HierarchyTable    t1
INNER JOIN HierarchTable t2 ON t1.Parent_Id = t2.Id