问题标签 [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 同级结构
我有一个在数据库表中存储相等记录的结构。你可以认为这些记录是兄弟。例如我在这张表中有两条记录;1=2 和 1=3。我需要一个查询来返回给定记录的所有兄弟姐妹。让我举个例子;
这是我的表,有两列:
我有 2 条记录,1=2 和 1=3
我认为使用 connect by 是这种情况的最佳解决方案,并编写以下查询:
此查询返回正确的结果,返回两行。
如果我使用 2 作为参数,查询也会正确运行,再次返回两行。
但是如果我使用 3 作为参数,查询不会像我预期的那样运行,只返回起始行。
我想知道为什么 2 和 3 的结果不同。任何帮助或想法都会被应用。
谢谢。
java - 如何在休眠中实现`connect by prior`?
这是我在 oracle 中的查询,但我想用 hibernate 作为一个Generic
函数来实现它,它将在整个应用程序中使用。然后我google了一下,发现hibernate不支持这种类型的查询。
笔记
- 我不想使用命名查询。
- 我是冬眠的初学者
postgresql - 如何使用递归查询向后遍历分层树结构结构
我正在使用 PostgreSQL 9.1 来查询分层树结构数据,这些数据由连接到节点的边(或元素)组成。这些数据实际上是针对流网络的,但我已将问题抽象为简单的数据类型。考虑示例tree
表。每条边都有长度和面积属性,用于从网络中确定一些有用的指标。
如下图所示,其中由 AE 表示的边与节点 1-5 相连。NULL to_node
(Ø) 表示结束节点。总是独一无二的from_node
,所以它可以充当PK。如果这个网络像流域一样流动,它将是从上到下的,其中起始支流边缘是 A、B、C,结束流出边缘是 E。
文档为WITH
如何在递归查询中使用搜索图提供了一个很好的示例。因此,要获取“转发”信息,查询从末尾开始,并向后工作:
以上是有道理的,并且适用于大型网络。例如,我可以看到B
边缘距离末端有 3 条边,而前向路径{B,D,E}
从末端到末端的总长度为 3.5。
但是,我想不出构建反向查询的好方法。也就是说,从每条边来看,累积的“上游”边、长度和面积是多少。使用WITH RECURSIVE
,我拥有的最好的是:
我想在递归查询的第二项中构建聚合,因为每个下游边缘都连接到 1 个或许多上游边缘,但是递归查询不允许聚合。另外,我知道连接是草率的,因为with recursive
结果有多个连接条件edge
。
反向/反向查询的预期结果是:
如何编写此更新查询?
请注意,我最终更关心的是累积准确的长度和面积总数,并且路径属性用于调试。在我的实际案例中,前向路径多达几百条,我预计大型复杂流域的反向路径有数万条。
sql - 使用 Connect by 获取树中最顶层的部分
我有下表:
A是父母,B是孩子。
我想在查询中输入子值“E”和“F”,并且只为这两个应该是“A”的那些获得顶级父级。这是我正在使用的查询:
它返回以下内容:
为什么它没有返回正确的顶级父级?
php - SQL树结构父子
我有以下数据:
我正在查询电话簿 ID 及其所有父母。它应该是一个导致编辑器的层次结构,因为他的父级为空,并且他通过打印机连接,打印机通过 TextWritingProggie 连接,然后连接到电话簿。
我想使用 SQL 更可取,但它可能需要通过 PHP 处理。
这是我到目前为止所得到的,但它在不包含 TextWritingProggie 的记录之后停止
任何帮助都会很棒
sql - 具有一对多关系的分层查询
我有三张桌子;d_algorithme
:
d_algo_ope
:
最后d_algo_maj
:
我想创建一个查询,给出如下结果:
其中前两列来自d_algorithme
,并且has_maj
是 0 或 1,具体取决于在 中是否存在直接或间接引用的算法d_algo_maj
。间接引用是通过一个或多个d_algo_ope
记录,它们一起形成一个层次结构。
对于显示的示例数据:
- 300:没有算法或
d_algo_ope
记录,id_algo = 1
也没有d_algo_maj
记录id_algo = 300
。 - 301:有一条
d_algo_maj
记录id_algo = 301
(足以使has_maj
列设置为1)。 - 302:没有
d_algo_maj
记录id_algo = 302
。但是有一个d_algo_ope
记录,num_operation = 301
它id_algo = 302
意味着 302 算法引用 301 算法(它有 amaj
),因此该has_maj
列应设置为 1。
这是 DDL 和 DML 以及其他详细信息(根据我的实际情况进行了简化):
sql - 如何在自循环表中导航?
考虑下表
这是一个自循环表,即每个员工都有一个经理,除了根。
我想在这个表上运行以下查询:
发现所有员工的薪水都高于他们的经理?
附言
结构中只有一个根
考虑以下查询
结果将是这样的:
我做了以下查询
从下到上为员工表中的每个员工创建一个子树,但我不知道如何导航以获得所需的结果!
sql - 从单个表 oracle 中查找分层或父子列值
我有一个表名树,它有两列,一列是p,第二列是ch。
我想要的输出是所有链接到父母的孩子。例如,如果我给“1”作为输入,我必须找到所有父元素和子元素,在这种情况下,1 是 2、3、4 的父元素,2 是 5 的父元素,依此类推......在这种情况下,我需要每个链接的子元素和父元素本身,如下所述:
下面是我写的查询,我想确认它是最好的解决方案,或者我们可以做得更好,因为我的表中有大量数据:
sql - 分层查询/基于表输入
账户表:
信息表:
产品表:
帐户表包含帐户的 ID。但是一些账户(ID_ACC)有父账户(Parent_acc) - 这个例子展示了
具有相同的 parent_acc (76543)。
一些孩子有信息(信息表)
(本例显示18252和34456与 info table 连接)
接下来,一些 info.account_id 包含产品(产品表)(在此示例中 - 只有18252 accountid 的产品具有帐号:456452。)
我想选择所有帐户层次结构:
(对我来说)最难的事情是我需要基于表格(展示)。如果to_show表由例如填充。34456 然后帐户输出需要与上面的列表相同。
如果 to_show 表由例如填充。“76543,18252,34456”然后情况与上述相同,依此类推......
我所需要的只是呈现所有层次结构,无论哪个帐户(在产品表或信息或帐户中)在 to_show 表中......作为输入,我可以从产品表中获取子/父或帐户。我试图这样做,但不幸的是这对我来说太难了(因为我在层次结构查询中完全是新手......)。伙计们,你能帮帮我吗?
mysql - 查找 SQL 表中的所有关系 - Mysql
我有一个名为实体关系的表。它将受赠者映射到其角色。在某种程度上一个用户可以有多个角色,一个角色也可以有多个角色,举个小例子:
现在我想创建 SQL 查询来查找实体的所有可能关系。例如上面的:
我知道一种通过递归在 Java 中执行此操作的方法,但在我看来,如果有一种通过查询执行此操作的有效方法,它会快得多。
有什么好的方法吗?
它会比Java递归实现更快吗?
谢谢。