Android 树选择sqlite
我在android中使用sqlite,需要进行选择以获取所有家长及其孩子的,例如:Android 树选择sqlite,android,sqlite,recursion,tree,Android,Sqlite,Recursion,Tree,我在android中使用sqlite,需要进行选择以获取所有家长及其孩子的,例如: id || parent_id || child_id || name 1 1 1 jhon 2 1 2 helen 3 2 3 barack 4 1 4 manuel 5 3 5
id || parent_id || child_id || name
1 1 1 jhon
2 1 2 helen
3 2 3 barack
4 1 4 manuel
5 3 5 gaga
结果应该是:
jhon
helen
manuel
barack
gaga
所以,我需要一个requursive sql,但通过谷歌搜索我发现sqlite支持CTE,无论如何,我甚至可以使用递归java方法按父asc顺序返回所选名称的列表
请注意,树的深度可以超过2级 我不知道如何解释你的表格。每个节点都有一个ID,对吗;以及根节点?指向自身的唯一父节点id?。孩子的身份证是什么?不能有多个孩子吗 在处理任意深度的递归结构时,如果树不经常更改,并且查询需要快速,请创建一个支持表,例如,祖先闭包,详细说明所有父子关系的闭包:
ancestor_id, child_id
并确保每当基表发生更改时,都会对其进行更新,并为位于另一个节点下方的每个节点添加一行。当您需要查找某个节点的所有父节点和/或子节点时,请加入祖先_闭包表。我认为sqlite不支持在insert/delete/update触发器上执行的存储过程,因此必须手动触发更新
SQL擅长于简单的关系,而不是任意的图形 id为prymary key autoincrement,但父项id和子项id不唯一。这是一个非定向图1->1,2,4 | | 2->3 | | 3->5