Android 在sqlite中以树结构从数据库中获取数据

Android 在sqlite中以树结构从数据库中获取数据,android,mysql,sql,database,sqlite,Android,Mysql,Sql,Database,Sqlite,在我的应用程序中,我有一个树结构的表,我想知道我是否可以通过简单地应用一个查询从sqlite数据库中获取树结构数据。目前,我正在使用for循环手动删除它,并且能够满足我的需求,但我对这种方法不满意,因为它更复杂,可能会很耗时,等等 我的表格结构如下: parent_id | cat_id null | 1 1 | 2 1 | 3 1 | 4 4 | 5 4 | 6 现在,上面是

在我的应用程序中,我有一个树结构的表,我想知道我是否可以通过简单地应用一个查询从sqlite数据库中获取树结构数据。目前,我正在使用for循环手动删除它,并且能够满足我的需求,但我对这种方法不满意,因为它更复杂,可能会很耗时,等等

我的表格结构如下:

parent_id |  cat_id

  null    |   1
   1      |   2
   1      |   3
   1      |   4
   4      |   5
   4      |   6
现在,上面是我的表结构,我想获取树结构,如, 如果我在查询中将parent_id传递为
1
,那么它应该返回
2,3,4,5,6
,因为
1
1,2,3,4
的父级,
4
5,6
的父级,
4
也是
1

所以,我期望的输入和输出

input    output

  1     2,3,4,5,6
  4     5, 6
那么,有没有一种简单的方法通过使用sqlite查询来实现上述树结构


使用sqlite查询无法实现这一点,我需要遵循当前的方法或使用方法,手动循环所有类别ID。

您可以使用group_concat方法,因为它在sqlite中可用

对于您的问题,我创建了一个名为
Trans
的表,并添加了
parent\u id
cat\u id

select parent_id, group_concat(cat_id) from trans group by parent_id;
我在下面提到过这样的表

我得到的结果如下:


希望这能对您有所帮助。

我没有从sqlite本身找到任何解决方案,所以创建了一个算法,通过迭代每个id及其子id并写入数据库来创建树结构

我已经经历了这个过程,它给出了我正在寻找的解决方案的预期结果

闭包表的更多参考-


我不确定,但是,通过使用
parent\u id
来使用group,然后使用
group\u concat
来连接
cat\u id
我已经尝试过这种方法。这只会立即提供sub_cat_id,而不是sub-to-sub_cat_id!