sqlite3上的基本递归查询?

前端之家收集整理的这篇文章主要介绍了sqlite3上的基本递归查询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的sqlite3表,如下所示:
Table: Part
Part    SuperPart
wk0Z    wk00
wk06    wk02
wk07    wk02
eZ01    eZ00
eZ02    eZ00
eZ03    eZ01
eZ04    eZ01

我需要运行一个递归查询,以查找给定SuperPart与其所有子部件的所有对。
那么说我有eZ00。 eZ00是eZ01的超级部件,eZ01是eZ03的超级部件。结果不仅包括对(eZ00,eZ01)和(eZ01和eZ03),还必须包括对(eZ00,eZ03)。

我知道有其他方法可以定义表格,但我在这里别无选择。
我知道我可以使用几个工会,如果我知道我的树的深度,但我不会知道我想要走多远的深度。
它有助于有一些像REC RECSSIVE或甚至只是WITH(,)AS x,但对于我搜索的东西,这是不可能在sqlite,对吧?

有没有办法在sqlite3中执行递归查询

更新:

当这个问题发生时,sqlite不支持递归查询,但是as stated by @luniconsqlite现在支持递归CTE,因为3.8.3 sqlite.org/lang_with.html

如果您幸运地使用sqlite 3.8.3或更高版本,那么您可以使用 WITH访问递归和非递归CTE:

感谢lunicon让我们知道这个sqlite更新。

在3.8.3之前的版本中,sqlite不支持递归CTE(或所有CTE),所以没有WITH in SQLite.由于你不知道它有多深,你不能使用标准的JOIN技巧伪造递归CTE。您必须在客户端代码中执行此操作,并执行递归:

>抓住初始行和子部分ID。>抓取子零件的行和子部件ID。>重复,直到没有回来。

原文链接:https://www.f2er.com/sqlite/198051.html

猜你在找的Sqlite相关文章