mysql查询节点下的所有叶子节点

使用存储过程查询节点下的所有叶子节点:树的表结构:节点ID:t_sort_id,  父节点:t_sort_farther

procedure1:

begin
 declare deep int;
 set deep=1;
 drop TABLE IF EXISTS tmpLst;
 CREATE TABLE tmpLst(id int primary key,pid int,depth int );
 insert INTO tmpLst select t_sort_id,t_sort_farther,deep from tool_sort where t_sort_farther=PID;
 while row_count()>0 do
  set deep=deep+1;
  insert INTO tmpLst select a.t_sort_id,a.t_sort_farther,deep from tool_sort a left join tmpLst b on a. t_sort_farther=b.id where a.t_sort_id<>1 and b.depth=deep-1;
 end while;
 call procedure2;
 select * from tmpLst;
end

procedure2:

begin
 delete from tmpLst where id in (select * from(select pid from tmpLst)as a );         //不执行这句话就是查询了所有的子节点

end

不知道为什么procedure2中的delete这一句直接写在procedure1里面就不行,盼高手解答!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值