使用MySQL如何使这种层次结构有效?
此查询将插入iReport。目前,Subentity及其子女不会卷入家长。
这就是我最终的目的:
`Select
case
when FC.ParentType = 'PARENT' then FC.FundCode
when FB.ParentType = 'PARENT' then FB.FundCode
when F.ParentType = 'PARENT' then F.FundCode
else 0 end as `ParentID`,
case
when FB.ParentType = 'SUBFUND' then FB.FundCode
when F.ParentType = 'SUBFUND' then F.FundCode
else 0 end as `SubfundID`,
case
when FB.ParentType = 'CHILD' then FB.FundCode
when F.ParentType = 'CHILD' then F.FundCode
else 0 end as `Children`,
F.FundName
From Fund F
join Fund FB on F.ParentId = FB.FundCode
join Fund FC on FB.ParentID = FC.FundCode`
答案 0 :(得分:0)
是否有一个静态数字来管理这个父子关系有多少级别?
是:使用递归LEFT JOIN
次X次。
SELECT *
FROM table t1 LEFT JOIN table t2
ON t1.id = t2.parent_id
LEFT JOIN table t3
ON t2.id = t3.parent_id
...
否:使用单独的查询完成此操作,直到您根据需要充实父/子对象为止。确保你有适当的检查,以避免循环,即。孩子是其父母的父母。
答案 1 :(得分:0)
您可以为此方案使用递归CTE 。看看这个链接,它给出了一个很好的例子。