问题标签 [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.

0 投票
1 回答
679 浏览

progress-4gl - progress 4GL 语言是否支持分层查询?

progress 网站上订阅的简单问题:progress 4GL 语言是否支持像 Oracle(Connect by 子句)或 Sql Server(CTE)这样的分层查询?

我有下表:

是否有正在进行的脚本会生成以下输出?

0 投票
1 回答
3459 浏览

sql - 在“开始于”中使用父值的 SQL 子查询

尝试组合多个查询,但无论我尝试将它们连接在一起的哪种方式都会遇到问题。这是两者的模型:

查询 1(获取所有 G 和相关 R):

查询 2(遍历层次结构并过滤到特定组):

我不想更改查询 1 的返回计数,但想加入查询 2 中的 g_name 并将其添加为新的别名列。

这是我试图达到的一个示例,但由于 g_id 在“开始于”中被称为“无效标识符”而不起作用。我知道父值仅在一个子查询深处有效,但如果仅使用一个子查询进行重组(在这种情况下为“来自”),仍然会出现同样的错误:

将这两个查询结合在一起的任何帮助将不胜感激。我的目标平台是 Oracle 11g。非常感谢!

* 更新 *

这是一些示例 SQL Fiddle 数据:

期望的结果:

0 投票
2 回答
1302 浏览

java - HSQL DB 中的连接方式

我正在为使用按分层子句连接的查询编写测试用例。HSQL Db 中似乎不支持此子句。

是否有任何替代方法可以测试查询或编写执行相同操作的不同查询。

查询很简单

谢谢。

0 投票
0 回答
25 浏览

mysql - 显示生成的分层查询

我需要进行分层查询,作为附加输出,我需要显示数据树中每个节点的生成。

最大代数是已知的,但是对于不同的祖先,一个节点可能在不同的代中。

最后,我需要一个表格来显示每个第一代条目的所有后代,可能条目出现多次。

起始表(例如:路由查找器,最大代数 3):

结果表应如下所示:

如何有效地计算生成?我的第一个想法,来自更多的过程编程,作为递归,但这在 MySQL 中不起作用......

0 投票
1 回答
1112 浏览

stored-procedures - 在sql中获取递归表的子项

我有一个具有某种级别(最多 5 级)的表,如下所示。我想创建一个获取一些 id 并返回项目及其子项的过程......我不知道如何处理它!(当 refid 为 1 时,表示该节点是第一级的父节点)

在此处输入图像描述

0 投票
0 回答
43 浏览

sql - 在一组值上使用“开始于”

我对我的 SQL生疏,我必须处理如下所示的查询:

我想对一组完整的值运行此查询,这是由于使用了另一个 select 语句。我正在寻找具有类似语义的东西:

我在这里使用 Oracle SQL 数据库。SQL 种类繁多,我发现很难从搜索中找到有用的东西,我没想到解决方案这么复杂(?)。最终查询不一定要高效,它只会运行一次。

0 投票
1 回答
85 浏览

sql - 具有两个表的分层查询

我有这张表名为"AFP"

where"ID" is a primary key"AFP_FUSION_ID" is a foreign keythat 引用同一张表。

我也有这张桌子叫"Registers"

在哪里

我必须创建一个具有类似参数的函数(10、20、30、40、50 或 90),并且必须返回相应的信息。

  • 如果函数接收到 '10',则函数必须返回数据from "REGISTERS" where AFP_DESTINO = 10
  • 如果函数接收到 '30' 则必须返回数据 where AFP_DESTINO = 30, 40 or 50
  • 如果函数接收到'90',则必须返回数据where AFP_DESTINO = 90, 30, 40, 50

我必须使用 Oracle,我有这个:

(我必须改进这一点并稍后转换为函数)。问题是如果我用 '30' 代替 '90',当afp_destino = 40 or 50.

有人可以帮我吗?

更新:

我有这个代码来解决这个问题:

但会产生不一致,出现更多行。

0 投票
3 回答
5407 浏览

sql - 分层 SQL 查询:在给定结束节点 id 的情况下,从 [nodeid, parentid] 对表中获取树的整个分支的最佳 SQL 查询

有没有办法在 SQL 中发送递归查询?

parentid = NULL给定结束节点 id,我需要按级别排序到根节点(具有 )的所有行。例如,如果我有类似的东西:

查询后end_node_id = c,我会得到类似的东西:

(除了深度,我还可以使用到给定端节点的距离)

我能想到的唯一(也是显而易见的)方法是每行执行一次查询,直到到达父节点。

有没有更有效的方法呢?

0 投票
0 回答
85 浏览

sql - 在连接中添加 where 和 and 子句 - ORACLE

我有一个table Xwith 列a, seq_no, dept_no, status,其中column a包含诸如"1,2,3,4,5,6". 要将行更改为列,我将查询用作:

在这里,我想添加类似 where 的条件dept_no is null and seq_no=1 and status='U'。如何添加上述条件。

从评论编辑:

我试过了:

0 投票
1 回答
428 浏览

sql - 使用 CONNECT_BY_ROOT 的左外连接

我有

并希望CONTENTNAME从 table 添加到每个条目列CONTENT

我试过了:

期望相同的结果,仅CONNECT_BY_ROOT使用 1 个额外的列:CONTENTNAMEfrom CONTENT,关联 by IDCONTENT; NULL如果没有关联的内容(IDCONTENTNULL)应该是

相反,我只得到IDCONTENTis not的行NULL。我还能做些什么来获得这些行?

我也试过:

而且我也试过

但我得到相同的结果(只有IDCONTENT不是的值NULL

最奇怪的是,查询昨天在开发数据库上按预期工作,但现在不是。所以我创建了一个小提琴来检查我是否可以重现以前的结果并且它工作正常...... http://sqlfiddle.com/#!4/ecb9d/1 http://sqlfiddle.com/#!4/ecb9d /3

是什么导致了这种行为变化?