问题描述
我下面的表格帽子包含具有层次结构的数据结构
+----+----------+-------------+
| ID | ParentID | FullPath |
+----+----------+-------------+
| 1 | NULL | (1) |
| 2 | 1 | (1)/(2) |
| 3 | 2 | (1)/(2)/(3) |
| 4 | NULL | (4) |
| 5 | 4 | (4)/(5) |
| 6 | 4 | (4)/(6) |
| 7 | 6 | (4)/(6)/(7) |
+----+----------+-------------+
如何检索某项的祖先? 例如,如果我寻找ID 3的祖先,我将得到1和2。 同样,如果我要查找7,我将得到4和6(注意5不在)。
我知道我可以通过解析列和使用动态SQL来避免在FullPath中使用CTE,但是我在创建查询时遇到了困难。
编辑: 我想要一个查询,使我能够获得项目的每个祖先行。例如,如果我希望祖先为7,则查询将返回下表:
+----+----------+-------------+
| ID | ParentID | FullPath |
+----+----------+-------------+
| 4 | NULL | (4) |
| 6 | 4 | (4)/(6) |
+----+----------+-------------+
原因是因为我有更多描述项目的列,所以我需要获取它们并进行比较。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)