在我的应用程序中,我有一个树结构表,我想知道是否可以通过简单地应用单个查询从 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_id
和 cat_id
列。
select parent_id, group_concat(cat_id) from trans group by parent_id;
我有下面提到的这样的表格。
我得到了这样的结果:
希望对您有所帮助。
关于android - 在sqlite中以树结构从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770446/