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