2 kevinqc1203 kevinqc1203 于 2013.09.17 16:11 提问

使用sql递归将叶子到树的路径串联成水平列名

我有三张表如下,分别记录类别的树结构、类别信息、类别分类名称:
categorytree:id , parentId , categoryID
category:categoryID,categoryName , level
categorylevel : level , catedorylevelName

外键应该可以看出来吧。
假设表内数据:
categorytree: id parentId categoryID
1 0 1
2 0 2
3 1 3
4 3 4
5 2 7
category: categoryID categoryName level
1 企划 1
2 开发 1
3 年度计划 2
4 项目A 3
7 模块开发 2
categorylevel: level categorylevelName
1 分类一
2 分类二
3 分类三

表结构是为了实现分类的可扩展性和树枝同级的项目名可能重用的考虑,
例如增加到分类四,或年度计划既出现在开发的子项也出现在企划的子项。
父节点ID为零的就是根节点

现在我想根据某个叶子节点,查找出到根节点的路径,然后按分类名作为列值查找出来
例如:查找ID = 4和5 的叶子节点
列:分类一 分类二 分类三
企划 年度计划 项目A
开发 模块开发

列根据categorylevel表确定有几列 叶子节点不一定为第几级别,没有就为空

这样通过sql嵌套查询可以实现吗,我用的数据库是mysql,如何实现呢
求助各位大神啊!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!