使用 MySQL 如何使这个层次结构起作用?
此查询将插入 iReport。目前,子实体及其子实体不会卷入父实体。
这就是我最终的结果:
`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`
最佳答案
是否有一个静态数字来控制这种亲子关系有多少个级别?
是: 使用递归 LEFT JOIN
s 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
...
否: 使用单独的查询完成此操作,直到您根据需要充实了父/子对象。确保您有适当的检查以避免循环,即。 child 是其 parent 的 parent 。