MySQL社区

标题: 求助:mysql 的递归查询,第二层开始不对。 [打印本页]

作者: oracle    时间: 2014-11-7 15:44
标题: 求助:mysql 的递归查询,第二层开始不对。
现有数据库表结构如下:
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;






欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2