问题标签 [hierarchical-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - oracle sql分层查询
我有两张桌子:
在 PRODUCT 表中,我必须根据 CATEGORY 表层次结构更新某些列才能获得此结果:
我应该为此创建一个过程或函数吗?
sql - 自加入表的分层查询最多 3 次
我有一个带有以下列的表的 Oracle 数据库:
我准备了一个自我加入
输出如下所示:
很直接。我想知道这个自连接是否可以作为分层/递归查询来完成。最大嵌套深度为 3。目标输出应如下所示:
谷歌没有帮助我,有大量与分层查询相关的信息,但包括自联接和分层查询在内的任何内容都没有,而且大多数问题似乎都是相似的(表面上),但没有什么能引导我找到我需要的东西。我是一个 SQL 新手,所以除非答案是具体的,否则我可能会错过它。
sql - 通过查询连接
我将分层数据存储在表中。当通过其分层路径(grantParent/parent/resource)访问资源时,我需要使用 CONNECT BY 查询来定位资源。
注意:SQL 命令是从 EnterpriseDB 导出的,但它也应该在 Oracle 中工作。
表结构:
数据:
现在,当我收到类似的路径时
我正在执行一个查询,例如,
我的预期结果是:
这个查询工作正常,但我不确定它是否会运行得更快,当我的表很大时,有数十万个条目。
你能根据我的要求优化这个查询吗?
编辑:
对上述查询的解释:我定义了两个索引 - 一个在 resource_id(主键)上,另一个在 parent_id
sql - SQL Server CTE 查找从一个 ID 到另一个 ID 的路径
我在 SQL Server 2008 R2 数据库中有一个表,它定义了不同状态之间的转换。
相关表格列示例:
... ETC。
我的目标是能够定义起始StateID、结束StateID 和 WorkflowID,并希望在该工作流中找到从起始 StateID 到结束 StateID 的逻辑路径。
例如,对于上表,如果我提供的起始 StateID 为 17,结束 StateID 为 184,WorkflowID 为 3,我可以得到一个 17>21>184 的“路径”(或者更理想的是,TransitionID 2>过渡ID 11)
好:
- 定义的开始和结束 StateID 将始终在定义的 WorkflowID中具有可能的路径
坏处:
几乎每个源/目标 StateID 上肯定都有循环引用(即可能有从 SourceStateID 1 到 DestinationStateID 2 的转换,以及从 SourceStateID 2 到 DestinationStateID 1 的转换
从几乎任何定义的起始 StateID 和结束 StateID 肯定有多个可能的路径
我意识到这是我追求的某种 CTE,但我承认我发现 CTE 通常很难掌握,而且当循环引用是一个有保证的问题时更是如此。
完美的解决方案是选择从起始 StateID 到结束 StateID 的最短路径,但老实说,在这一点上,如果我能得到一些能够可靠地为我提供两个状态之间的任何有效路径的工作,我会如此快乐的。
那里的任何 SQL 专家都有一些您可以指出我的方向吗?老实说,我什至不知道从哪里开始防止循环问题,比如沿着 17>18>17>18>17>18...
令人作呕的更新 我想出了这个查询,这在情感层面伤害了我(在这篇文章的一些帮助下:https ://stackoverflow.com/a/11042012/3253311 ),但似乎正在工作。
sql - 当表有循环时,为什么 CONNECT_BY_ISCYCLE 不给出 1?
众所周知scott.emp
,Oracle 的表在层次结构中没有任何循环。但是我emp
稍微更改了表格(UPDATE emp SET mgr=7654 WHERE empno=7698)
,将 Martin 的经理更改为 Blake,将 Blake 的经理更改为 Martin,并触发了以下查询。
但它没有给出 Martin 和 Blake 相关的条目,也没有在预期字段显示 1。如果你能弄清楚,请回答原因。
sql - 识别新层次结构的键
假设我的来源看起来像
我的查找表看起来像
在这种情况下,只有当我有一个完全匹配并且完整的键将被保留时,我的记录才被视为更新。如果它与任何列都不匹配,则将其视为插入。棘手的部分甚至是插入,必须检查每个层次结构级别,并且必须保留键以匹配位。
例如假设我已经有 1->11->14 并且我验证了 1->11->15 那么这必须是一个插入记录但必须保留 1 和 11 的键并且必须生成 15
此外,如果我得到 1->12->14,那么在这种情况下,记录将被视为插入,并且必须仅为 1 保留密钥,并且必须为 12 和 14 生成新密钥
我能想到的一种可能的解决方案是通过将数据集视为二维矩阵来对每个级别进行左连接。但这不是一个很好的方法。
我得到的输出(也是我想要的)
我的数据库WX2
不支持递归 CTE,我所拥有的只是简单的 ANSI SQL 语法,但递归 CTE 除外。
sql - H2查询中的无限循环
我正在通过使用JUnit运行的测试在具有 3 个条目的表上对H2 数据库执行以下查询:
查询在包含人员的自引用表上执行。它找到一个人的所有祖先的 id。
由于某种原因,当测试挂起时,我猜想这是一个无限循环,我可以看到 RAM 使用率迅速上升(> 2GB)。为什么会发生这种情况,我该如何解决?
观察:
- 这在 Oracle 中执行得很好
- 如果表中没有指定 PARENT_ID,它会正常执行,但如果有,它会挂起并且 RAM 使用量不断增加。
sql - 无法在分层查询中引用内部查询中的列?
我正在使用分层查询从我的表结构中获取详细信息。我在'START WITH'条件下从内部查询中引用列,但它抛出未知列错误请检查
询问 :
问题在于突出显示的区域,我计划从内部查询中引用列。
即START WITH object_id=sopi.OBJECT_ID 不起作用,请帮助
mysql - 当我们传递 parent_id 时,MySQL 查询以获取树中的所有子项
我一直在查看查询结果,在已传递给查询的上级 emp_id 下的员工总数。
示例:对于emp_id 1,他有'2,3,4,5'作为reportees,再次对于emp_id 3,有'6,7'是reportess,再次在emp_id 6下有'8,9'是reportees,再次在下emp_id 9 有报告人 '10'
现在,当我将 manger_id '1' 传递给查询时,我应该得到所有 9 名员工。
以下是我的查询,如果单个员工下有 40 名员工,则该查询无效。
在我的表结构中,每个 emp_id 都有一个 manager_id 列
请帮助 MySQL 函数的 MySQL 查询。
mysql - MySQL 中的分层查询 - 查找所有后代
这篇文章的答案在这里提供了一个查询来查找邻接列表中节点的所有祖先。
现在,如何使用类似查询找到节点的所有后代?我试过了:
我只是交换 senderid 和 receiverid,但它给了我#2014 Commands out of sync. You can't run this command now
.
任何想法?