0 0

mysql 递归查询下属组织的所有人10

有一个岗位表position(id,pid,name)
有一个员工表employee(id,name)
有一个员工岗位关系表emp_po_rel(e_id,p_id)
员工可有多职位,现在要查某人的所有下属员工,这个递归怎么写,大侠帮写一个能执行的脚本,数据库是mysql
2014年4月03日 13:44

5个答案 按时间排序 按投票排序

0 0

BEGIN
       DECLARE sTemp VARCHAR(1000);
       DECLARE sTempChd VARCHAR(1000);
    
       SET sTemp = '$';
       SET sTempChd =cast(rootId as CHAR);
    
       WHILE sTempChd is not null DO
         SET sTemp = concat(sTemp,',',sTempChd);
         SELECT group_concat(id) INTO sTempChd FROM treeNodes where FIND_IN_SET(pid,sTempChd)>0;
       END WHILE;
       RETURN sTemp;
     END

2014年4月04日 16:18
0 0

Mysql没有递归函数的话,只能写存储过程,或是查询出来前端处理吧

2014年4月04日 15:48
0 0

或者递归调用存储过程

2014年4月03日 20:00
0 0

你的意思是不是:a有下属b,c
b有b1,b2
c有c1,c2,c3
现要查出b,b1,b2,c,c1,c2,c3
最简单办法,一般有层级的都有级别,设a8级,bc七级,
b1,b2,c1,c2,c3六级,那么只要name=a   and  level<    8

2014年4月03日 19:56
0 0

还真是不知道.
mysql既没有像oracle一样的树查询,也不支持with as的递归..
貌似除了procedure之外好像就没办法了.

2014年4月03日 15:42

相关推荐

Global site tag (gtag.js) - Google Analytics