1
3
这是SQL,它帮助我从树中的任何点获取“breadcrumb”路径。希望有帮助。
凯丝 |
2
3
好啊。这是针对MySQL的,而不是针对SQL Server 2005的。它将组concat与子查询一起使用。 这应该将完整的breadcrumb作为单列返回。
|
3
2
如果可以,请使用路径(或者我认为我听说过它被称为沿袭)字段,如下所示:
要仅获取节点D和向前(psuedocode):
|
4
1
我最后做的是创建一个大型的连接,它简单地将这个表与它本身联系起来,在每一个级别上一次又一次。 首先,我用一级组填充一个表@toplevelgroups(如果您只有一个根,则可以跳过此步骤),然后用用户可以看到的组填充@user groups。
这是一个相当大的黑客攻击,显然只限于一定数量的级别(对于我的应用程序,我可以选择一个合理的限制),随着支持的级别越多,它会以指数形式增加连接的数量,因此速度要慢得多。 在代码中进行这项工作当然更容易,但对我来说,这并不总是一个选项——有时我需要直接从SQL查询中获得它。 我接受这一点作为答案,因为这是我最终要做的,而且可能对其他人有用——但是,如果有人能想出一个更有效的方法,我会把它改为其他人。 |
5
1
我修改了凯西的陈述以获取每个元素的面包屑。
请随意添加一个Where条件,例如
|
6
0
没有特定于SQL Server的代码,但您只是在寻找: 从表中选择*左<(currentid.left)和右>(currentid.right) |
Pete · T-SQL中嵌套集层次结构路径的物化 7 年前 |