|
Тема |
Re: Дървовидно изчитане на записите в MySQL? [re: alabala] |
|
Автор | Hipo (Нерегистриран) | |
Публикувано | 10.01.04 16:33 |
|
|
Е процедурата е специфична за конкретна таблица, а и това което прави е специфично.
Ето това е, което на мен ми трябваше (в опитен вариант, после така и не се наложи да го използвам)
Таблицата d има 2 int колони, Id i ParentId, чрез които се представя дървото, като Id e с уникални стойности, ParentId на root елемента на дървото е NULL.
Процедурата връща всички елементи, които се намират над елемента параметър
CREATE PROCEDURE sp_ToRoot
@Id int
AS
SELECT * INTO #temp_table FROM d WHERE 1 = 0
IF EXISTS(SELECT ParentId FROM d WHERE [Id] = @Id)
BEGIN
WHILE @Id IS NOT NULL
BEGIN
SELECT @Id = ParentId FROM d WHERE [Id] = @Id
INSERT #temp_table SELECT * FROM d WHERE ParentId = @Id
END
END
SELECT * FROM #temp_table
DROP TABLE #temp_table
|
| |
|
|
|