问题标签 [recursive-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.
mysql - mySQL 传递闭包表
我有一些我一直在 SQL Server 中使用的代码来从另一个只有直接父/子关系的表生成一个闭包表,我可以对此运行非常简单的查询来确定沿袭。现在我需要在 mySQL 中完成所有这些工作,但是我在使用递归查询来生成闭包表时遇到了麻烦......
我原来的 SQL 服务器查询是
我的第一个问题是找到@@ROWCOUNT 的替代品...但也许递归查询在 mySQL 中完全不同?我还查看了Bill Karwin 的演示文稿
PS。由于性能问题,我需要“COLLATE DATABASE_DEFAULT”。
谢谢。
sql - 混合递归查询和游标表达式
我有一个表,其中包含表示层次结构的数据。从该表中获取单个“对象”的数据的最简单方法是递归查询。同一个表还存储与“对象”关联的“成员变量”。我认为在单个查询中查看对象结构以及关联的成员变量会很好,所以我尝试了类似的方法:
...并且 Oracle 告诉我“不允许使用光标表达式”。
如果我将其作为两个单独的游标(循环遍历一个游标的结果,然后根据这些结果使用另一个游标),则一切正常,因此我不需要单游标解决方案。
我只是想知道为什么我不能使用游标表达式组合这两个查询 - 或者我可以组合它们而我只是以某种方式错过了它?
(Oracle版本为10g)
python - 如何动态调整 SQLAlchemy ORM 中预加载的递归深度?
我有一个两表分层设置,其中表 A 引用表 B,然后引用回表 A 中的不同记录,依此类推......但仅限于给定的递归深度。
我使用 SQLAlchemy 和声明性的方法很好地工作。我还成功地使用了表关系上的lazy
和join_depth
属性的预加载。这是根据SQLAlchemy 文档。
但是,这种安排在程序加载时将递归深度固定在 ' join_depth
' 一次......但是根据我正在使用的数据,我知道我每次应该使用的递归深度。 如何更改每个查询使用的递归深度?
我考虑过摆弄join_depth
基础 ORM 对象上的 master 属性,但这不起作用,因为我有一个多线程 scoped_session 应用程序,这会很危险(更不用说参数很难在运行时在 SQLAlchemy 中定位!)。
我也看过使用joinedload
查询,但不知道如何改变深度。
我也知道通过CTEsWITH RECURSIVE
在某些数据库中可用的 ' ' SQL 语法,但尽管如此,我想暂时避免这种情况,因为一些数据库仍然不支持它(SQLAlchemy 也不支持 - 至少目前没有,也没有很多方言定制)。
mysql - 如何在 MySQL 中递归删除行(即也删除外键链接的行)?
我在我的 MySQL 数据库中使用约束。但是现在,当我尝试删除其他条目具有外键关系的条目时,这让我很头疼。我总是收到这个错误:
我可以向删除语句传递任何参数或任何东西,以便它递归地删除与我要删除的行具有外键关系的所有行吗?
sql - 给定一个消息的入口点的消息线程的 SQL 2008 递归查询
也许是一个过于复杂的标题。基本上想到一个电子邮件收件箱。我有一张这样的桌子:
如您所见,它是一个递归表,非常简单,只有一条消息的 parentID,正如您在绿色高亮环中看到的那样,“链”的末端是 parentID 为 NULL 时。
我需要提供(例如)12 的 INBOXID,并返回所有父母。在这个例子中,我应该得到 1 条记录,即 INBOXID 为 11。
在第二个例子中,我应该能够传入 INBOXID 9,但这次我应该取回 INBOXID 8,7 和 1 行
我确实通过以下查询取得了一些成功:
..但当然它会返回任何行的所有父母。起点收件箱),我不太清楚我需要做什么???
非常感谢任何帮助!!!!大卫。
tsql - 创建唯一的 URI Slugs - 这是一个递归触发器吗?(SQL 服务器)
这是我的桌子:
dbo.帖子
- PostId(身份,PK)
- 主题
- UniqueUri (NVARCHAR(350), NOT NULL)
当我创建“帖子”时,我插入了一个空白的UniqueUri(使用NEWID()
内置函数)。
然后我在“发布”表上有一个触发器:
它调用一个 SPROC 来创建唯一的 Uri。
SPROC 有一些这样的代码:
我注意到当我尝试只插入一个帖子时,它需要一分钟多的时间。
我只能推断这是一个递归触发调用?
基本上,当创建/更新帖子时,我需要创建唯一的 uri(很像堆栈,用于问题)。
我能想到的唯一解决方案是创建另一个名为 UniqueUri's 的表,它除了 PostId FK 和 Uri 之外什么都没有,例如 1-1,我总是尽量避免。
然后 SPROC 将更新该表。
还有其他建议/想法吗?
sql - SQL递归查询
我有一个表格类别,
1) ID
2) CategoryName
3) CategoryMaster
数据为:
1 计算机 0
2 软件 1
3 多媒体 1
4 动画 3
5 健康 0
6 Healthsub 5
我创建了递归查询:
我将父类别的结果放在底部,就像我得到计算机的所有子类别一样
但我想要自下而上的结果,比如从动画到计算机,请有人建议我正确的方向。
先感谢您 :)
sql - 从表示树结构的 Oracle 表中选择所有后代行
我在 Oracle 10g 中有一个代表树结构的表 MYTYPE,它是这样的:
我想选择 MYTYPE 中作为特定 ID 后代的所有行,以便我可以在其他地方创建查询,例如:
什么是构建后代集的经济高效的方法,最好不使用 PL/SQL?
sql - 帮助递归 CTE 查询加入第二个表
我的目标是通过表 tbl 进行递归,并在通过该表进行递归时从另一个表 tbl2 中选择一个国家缩写(如果存在)并将这些结果附加在一起,这些结果将包含在最终输出中。
我将使用的示例来自这篇文章
tbl2 有一个外键“tbl_id”到 tbl,看起来像这样
*注意:并非所有国家都有缩写。
诀窍是,即使一个国家没有缩写(例如印度),我也希望亚洲的所有国家至少显示“AS”的亚洲缩写。如果国家/地区确实有缩写,则结果需要如下所示:China:CN,AS
我已经使用子查询部分地工作了,但是 India 总是返回 NULL 作为缩写。这就像如果没有返回缩写的完整递归路径,那么它返回 null。也许解决方案是在缩写表上使用左外连接?我已经尝试了几个小时许多不同的变体,并且子查询尽可能接近。
顺便说一句,如果这很重要,我正在使用 sql server 2005
django - 所有孩子的Django自递归外键过滤器查询
我有一个具有自引用外键关系的模型:
现在我想为一个人获取所有多层次的孩子。如何为它编写 Django 查询?它需要表现得像递归函数。