---ID,PID的产品树 car
ID PID Name Level
1 -1 车身 0
2 1 行李箱盖 1
3 1 引擎盖 1
4 1 门 1
5 4 把手 2
6 4 窗 2
7 1 铆钉 1
8 4 铆钉 2
9 6 玻璃 3
11 6 Aa 3
12 11 bb 4
---所有下级节点
with cte as
(
select * from car where id=6
union all
select c.* from car c join cte e on c.pid=e.id
)
select * from cte order by level
6 4 窗 2
9 6 玻璃 3
11 6 Aa 3
12 11 bb 4
---所有上级节点
with cte as
(
select * from car where id=6
union all
select c.* from car c join cte e on c.id=e.pid
)
select * from cte order by level
1 -1 车身 0
4 1 门 1
6 4 窗 2
----移动的情况,所有下级节点
update cte
set
level=level+ n