如何从mysql数据库中获取子节点和父节点

时间:2013-10-17 12:31:56

标签: mysql

最初我创建了表名为empdetails的表名。

empdetails  CREATE TABLE `empdetails` (             
              `ID` int(9) NOT NULL,                 
              `Emp_Name` varchar(30) default NULL,  
              `Supr_ID` int(9) default NULL,        
              PRIMARY KEY  (`ID`)                   
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 

将数据插入:

insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '1','Project Manager 1','0');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '2','Project Manager 2','0');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '3','Manager 1','1');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '4','Manager 2','2');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '5','Lead 1','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '6','Lead 2','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '7','Lead 3','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '8','Lead 4','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '9','Lead 5','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '10','Lead 6','3');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '11','Emp 1','6');
insert into `empdetails` (`ID`,`Emp Name`,`Supr ID`) values ( '12','Emp 2','7');

我的问题:

  1. 如果我给id然后它将显示emp_names,其中任何emp_names包含与Supr_id相同的id也是递归的(这个问题是用于打印子节点)。
  2. 示例:如果我输入1作为输入,则输出emp_names为项目经理1,经理1,导联1,导联2,导联3,导联4,导联5,导联6,Emp 1,Emp 2

    1. 如果我给id然后它将显示emp_names,其中任何emp_name包含id作为当前emp_names Supr_id(此问题用于打印父节点)
    2. 示例:如果我输入10作为输入,则输出emp_names为 Emp 1,Lead 2,Manager 1,Project Manager 1

      请解决这两种情况......

      提前致谢。

0 个答案:

没有答案