![]() |
1
4
|
![]() |
2
0
如果您想在一个查询中检索所有节点,我建议使用另一种方法来建模层次结构。一个非常好且常见的实现是 nested set 模型。本文概述了这是如何在MySQL中实现的,但它可以很容易地移植到Oracle。 |
![]() |
3
0
实现这一点的一个可能的好方法是添加另一个包含记录“路径”的字段。假设最高记录是id=1。它有一个id=5的子记录,它又有一个id=20的子记录,那么最后一条记录将具有路径 1/5/20 所以如果你想要你的所有子节点,你需要
(抱歉,SQL Server语法,我不是Oracle开发人员-但这个概念仍然适用) 获取中间节点的子节点
该解决方案的好处在于,您可以将索引应用到“path”字段,因此语句将只使用一个索引扫描来执行,从而使其非常高效。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 5 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |