Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要使用mysql查找表中的父子关系_Mysql - Fatal编程技术网

需要使用mysql查找表中的父子关系

需要使用mysql查找表中的父子关系,mysql,Mysql,假设我们有一张包含以下信息的表格 id name level Parent_id 1 A 1 --- 2 B 1 ---- 3 C 2 1 4 D 2 2 5 E 3 3 6 F 3 4 7 G 4 5 8 H 4 5 我想要这个格式的结果 id L1Name L2 Name L3 Nam

假设我们有一张包含以下信息的表格

id  name  level   Parent_id
1   A     1       ---
2   B     1       ----
3   C     2       1
4   D     2       2
5   E     3       3
6   F     3       4
7   G     4       5
8   H     4       5
我想要这个格式的结果

id  L1Name   L2 Name  L3 Name  L4Name
1   A        -        -        -
2   B        -        -        -    
3   A        C        -        -
4   B        D        -        -    
5   A        C        E        -
6   B        D        F        -
7   A        C        E        G
8   A        C        E        H

我想在mysql中得到这个结果。我们可以通过使用Connect by Previor在oracle中找到这一点。在mysql中如何。请帮助。

您可以查找此文件

     select id , L1Name,   L2Name , L3Name , L4Name
     from (
         select id ,
         if(level =1 , name , '--') L1Name ,
         if(level =2 , name , '--') L2Name ,
         if(level =3 , name , '--') L3Name ,
         if(level =4 , name , '--') L4Name 
         from Table1
         )t

编辑:

试试这个

 SELECT id, L1Name,   L2Name , L3Name , L4Name
 FROM (
     SELECT id,
     IF(id in(1,3,5,7), 'A' , 'B') L1Name ,
     IF(id in(3,5,7) , 'C' , if(id in(1,2), '-', 'D')) L2Name ,
     IF(id in(5,7),'E',if(id in(1,2,3,4), '-', 'F')) L3Name ,
     IF(id =7 , 'G' , if(id in(1,2,3,4,5,6), '-', 'H')) L4Name 
     FROM Table1
 )t

不,它将给出这样的结果..id L1Name L2 Name L3 Name L4Name L41A----2B----3-C--4-D--5--E-6--F-7---G8----H请看。。。