问题标签 [hierarchical-data]
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.
plsql - Oracle 分层查询
我有一个包含公司层次结构的表。决定使用此平面表,因为公司中没有定义级别的数量。该表效果很好,如果您要在客户端上使用级联列表,那就完美了。但是,我需要查看一个“部分”,以及它拥有的所有其他“部分”。希望下面的信息能让您了解我需要做什么。
表定义
数据
我需要看到的
我可以在客户端的 C# 中执行此操作,但我真的很想将它作为数据库的视图。
有人可以帮我解决这个问题。甚至可能吗?
如果您需要澄清任何事情,请发表评论,我会尽力提供更多信息。
sql - Oracle 中的分层查询 - 失控?
我在过去可以工作的 Oracle 10 SQL 中有一个分层查询。但是,我删除了它所基于的物化视图,现在我无法让它正确显示,甚至完全离开了那个视图。
原始查询如下所示:
我认为它仍然有效,但没有 lastobsmv 视图,我无法对其进行测试。
如果我把它修剪成
它仍然有效,返回 41K 记录。但是,当我使用 connect by 子句时,它会失控,返回数百万条记录(我通常必须取消它才能获得准确的计数)。
我在这里错过了一些非常明显的东西,还是我误解了它应该如何工作?谢谢。
瓦迪姆,
它应该返回一个观察术语列表以及它们所在的组。例如,
关注点:
HierGrps:
应该产生
(最终还有这个 obs 术语被使用的次数,但我稍后会担心)。
sql - SQL 查询以获取具有子记录列表的父表的记录
我在 MS SQL Server 2005 数据库中有两个表,父表和子表,其中父表可能与许多子记录相关。[Child.parent_id] 与 [parent.id] 相关。子表也有列 [foo] 我需要带回父表中 [child.foo] 与一对多参数中的每一个匹配的所有记录。例如,我想要所有 [child.foo] 值为“fizz”且 [child.foo] 值为“buzz”的父记录。我尝试了以下查询,但它返回的记录仅匹配一个。
sql - 如何在 SQL 中表示数据树?
我正在编写一个由 Tree 和 TreeNode 组合而成的数据树结构。树将包含对数据的根和顶级操作。我正在使用 UI 库以 Windows 形式呈现树,我可以将树绑定到 TreeView。
我需要将这棵树和节点保存在数据库中。保存树并获得以下功能的最佳方法是什么:
- 直观的实施。
- 易于绑定。将很容易从树移动到数据库结构并返回(如果有的话)
我有2个想法。第一个是将数据序列化到表中的一个行中。第二个是保存在表中,但是当移动到数据实体时,我会在更改的节点上松开表上的行状态。
有任何想法吗?
mysql - 删除专辑及其媒体和子专辑及其媒体的正确方法
使用其媒体删除专辑分层数据的正确方法是什么。
我是否应该开始循环并找到所有子专辑 ID 并删除 thou 并进行查询以删除属于该专辑 ID 的所有媒体。
如果数据很多或用户的专辑很多,这将是查询执行的负载。你的设备是什么。
我的数据库结构:
sql - SQL CTE 计算子递归
我想(使用 cte)以这种方式计算表中的孩子,以便在父母级别拥有所有孩子的数量,包括他们的孩子。有样品吗?
mysql - 从分层数据中获取有限数量的记录
假设我有 3 个表(仅重要列)
- 类别(catId
key
,parentCatId) - Category_Hierarchy (catId
key
, parentTrail, catLevel) - 产品(prodId
key
、catId、createdOn)
有一个单独的 Category_Hierarchy 表是有原因的,因为我在 Category 表上使用了填充它的触发器,因为 MySql 触发器像它们一样工作,如果我想使用auto_increment
值,我不能在触发器内的同一个表上填充列. 对于这个问题,这是无关紧要的。无论如何,这两个表是 1:1。
类别表可以是:
类别_层次结构
产品
Category_Hierarchy 使获取类别从属树变得简单,如下所示:
它将返回类别 3 的完整从属树(即低于 2,即低于 1,即根类别),包括从属树根节点。排除根节点只是又一个where
条件。
问题
我想写一个存储过程:
这意味着如果某个类别有 3 个直接子类别(下面有任意数量的节点),我将得到 30 个结果(每个从属树中 10 个)。如果它有 5 个子类别,我会得到 50 个结果。
最好/最快/最有效的方法是什么?如果可能的话,我想避免使用游标,除非它们与任何其他解决方案以及准备好的语句相比工作得更快,因为这将是对 DB 的最频繁调用之一。
编辑
由于一张图片可以讲述 1000 个单词,因此我将尝试使用图片更好地解释我想要什么。下图显示了类别树。这些节点中的每一个都可以有任意数量的与之相关的产品。图片中不包含产品。
所以如果我执行这个调用:
我想有效地获得 30 种产品:
- 来自整个橙色子树的 10 款最新产品
- 来自整个蓝色子树的 10 款最新产品和
- 来自整个绿色子树的 10 款最新产品
我不想从节点下的每个节点获得 10 个最新产品,catId=1
这意味着 320 个产品。
sql - SQL Server 中的 ORACLE Connect by 子句等效
SQL Server 中是否有与 Oracle 的 CONNECT BY 等效的子句。使用 parentId 字段构建类别树的要求。
sql - Windows Forms VB.NET - Populate TreeView with Hierarchical data
Aloha, I'm trying to populate a treeview on a windows form app with Hierarchical data from a SQL db.
The structure from the database is:
the records with NULL value at id_parent, are the main categories, and the ones with their id_parent, are sub categories.
Can anyone help with the code to populate the TreeView ? I managed to do it with an ASP.NET app, if it helps, here's the code:
sql - 父级SQL查询数
我的数据库中有一个名为的表type
我需要知道每种类型有多少父母(后代)
ID -------- 后代
如何使用 MySQL 编写优化的 sql 语句来执行此操作?