MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 2009|回复: 0
打印 上一主题 下一主题

[存储过程及函数] 求助:mysql 的递归查询,第二层开始不对。

[复制链接]
跳转到指定楼层
1#
发表于 2014-11-7 15:44:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现有数据库表结构如下:
tbus_custom_flowdata(
id  int,
out int
in  int)
说明:id是表的序列,out是销售商ID,in是进货商ID,同时In也是下一级进货商的销售商,相当于out字段。
现在需要从上到下,找一颗树。我的过程如下。发现从第二层开始不对。大侠能否指导下。感谢

drop PROCEDURE IF EXISTS  TreeNode;
CREATE PROCEDURE TreeNode (IN rootid INT)
BEGIN
DECLARE Level int ;
drop TABLE IF EXISTS tmpLst;
CREATE TABLE tmpLst (
  #id int,
        parid int,
        childid int,
  nLevel int,
  sCort varchar(8000)
);

Set Level=0;
INSERT into tmpLst SELECT custom_id_out,custom_id_in,Level,'' FROM tbus_custom_flowdata WHERE custom_id_out=rootid;
WHILE ROW_COUNT()>0 DO
SET Level=Level+1 ;
  INSERT into tmpLst
   SELECT A.custom_id_out,A.custom_id_in,Level,concat(B.sCort,A.ID)
                 FROM tbus_custom_flowdata A join tmpLst B
     ON A.CUSTOM_ID_OUT =B.childid AND B.nLevel=Level-1 ;
END WHILE;
END;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖 顶1 踩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-5-3 23:40 , Processed in 0.063245 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表