我有一个以下格式的表格:
sid sname pid pname ppid pdetail
1.1 ABC 1.1.1 UVW 1.1.1.1 XSXXSX....
1.1 ABC 1.1.1 UVW 1.1.1.2 VDSVS...
1.1 ABC 1.1.2 DEF 1.1.2.1 DSVSDSD..
1.1 ABC 1.1.2 DEF 1.1.2.2 SVSDV...
1.2 XYZ 1.2.1 LMN 1.2.1.1 DFSDSD..
1.2 XYZ 1.2.2 GGF 1.2.2.1 CDSSS...
等等...
我需要获得以下格式的结果..
Id Detail Parentid ppid pdetail
1.1 ABC NULL 1.1.1.1 XSXXSX..
1.1.1 UVW 1.1 .. ...
1.1.1 UVW 1.1 .. ..
1.1.2 DEF 1.1 .. ..
1.1.2 DEF 1.1
1.2 LMN NULL
1.2.1 LMN 1.2
1.2.2 GGF 1.2
我不知道如何继续...任何关于如何进一步进行的帮助都会很好?
最佳答案
您不需要自加入
,因为您想要的有关父级的所有信息都已可用。您所要做的就是联合
:
select *
from (
select pid as Id, pname as Detail, sid as ParentId, ppid, pdetail
from table
union all
select sid, sname, null, ppid, pdetail
from table
)
order by Id
关于mysql - 分层父子关系。自加入或并集或两者兼而有之?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836666/