需要使用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请看。。。