sql – 有一种简单的方法来查询节点的子节点?
发布时间:2020-05-25 03:38:46 所属栏目:MsSql 来源:互联网
导读:我最近一直在使用 Nested Set Model的废话.我喜欢为每一个有用的操作和视图设计查询.有一件事我坚持是如何选择一个节点的直接孩子(而且只有孩子,而不是后裔!). 说实话,我知道一种方式 – 但它涉及无法管理的SQL数量.我确定有一个更直接的解决方案. 你看过你
|
我最近一直在使用 Nested Set Model的废话.我喜欢为每一个有用的操作和视图设计查询.有一件事我坚持是如何选择一个节点的直接孩子(而且只有孩子,而不是后裔!). 说实话,我知道一种方式 – 但它涉及无法管理的SQL数量.我确定有一个更直接的解决方案. 解决方法你看过你发贴的文章吗?它在“查找节点的直接下属”标题下SELECT node.name,(COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,nested_category AS parent,nested_category AS sub_parent,(
SELECT node.name,(COUNT(parent.name) - 1) AS depth
FROM nested_category AS node,nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = 'PORTABLE ELECTRONICS'
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth <= 1
ORDER BY node.lft;
但是,我做的(这是作弊)是将嵌套集合与邻接列表相结合 – 我在表中嵌入了一个“parent_id”,所以我可以轻松地询问一个节点的子节点. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – a = 0和b = 0的性能和… z = 0 vs b c d = 0
- SQLite教程(九):在线备份
- MSSQL 检查所使用的语句是否符合标准
- sql-server – ‘Microsoft.ACE.OLEDB.16.0’提供程序未在本
- 在Python安装MySQL支持模块的方法
- SQLServer2005混合模式登录配置(用户登录错误18452,233,406
- SQL存储过程IF EXISTS UPDATE ELSE INSERT
- sql-server – 主键列上的非聚簇索引?
- 通用SQL存储过程分页以及asp.net后台调用的方法
- sql-server – 当设置为CRLF时,SSIS读取LF作为终结符
