алгоритм вложенных множеств

ReMaRk

Новичок
алгоритм вложенных множеств

Помогите решить проблему связанную с алгоритмом вложенных множеств в SQL.
Есть дерево построенное по алгоритму вложенных множеств (nested sets by Joe Celko):
CREATE TABLE tree(
id INT(4) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name CHAR(32),
lft INT(4) UNSIGNED,
rgt INT(4) UNSIGNED,
level TINYINT(1) UNSIGNED
);
допустим есть данные (в скобках значения полей lft, rgt и level):
111(1,18,0)
-222(2,5,1)
--333(3,4,2)
-444(6,7,1)
-555(8,9,1)
-666(10,15,1)
--777(11,14,2)
---888(12,13,3)
-999(16,17,1)
необходимо составить запрос, при помощи которого можно было бы переносить ребенка(со своими детьми) одного родителя к другому, т.е. например "777" перенести к "333", результат:
111(1,18,0)
-222(2,9,1)
--333(3,8,2)
---777(4,7,3)
----888(5,6,4)
-444(10,11,1)
-555(12,13,1)
-666(14,15,1)
-999(16,17,1)
и чтобы не было зависимости от переноса вниз по дереву или вверх...
 
Сверху