Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite将树表(分层)转换为平面表_Sqlite_Hierarchical Data - Fatal编程技术网

sqlite将树表(分层)转换为平面表

sqlite将树表(分层)转换为平面表,sqlite,hierarchical-data,Sqlite,Hierarchical Data,我在这里遇到了这个问题,非常感谢您的帮助。 我需要像这样转换树表/层次结构: id name parent 1 aaa 2 bbb 1 3 ccc 1 4 ddd 2 5 eee 2 6 fff 5 其中 id-是唯一标识符 父项-与给定记录相关的父项的id 上面的表格需要从一个深层层次结构转换为一个平面水平表格,如下面的表

我在这里遇到了这个问题,非常感谢您的帮助。 我需要像这样转换树表/层次结构:

id    name    parent
 1     aaa          
 2     bbb         1
 3     ccc         1
 4     ddd         2
 5     eee         2
 6     fff         5
其中
id-是唯一标识符
父项-与给定记录相关的父项的id

上面的表格需要从一个深层层次结构转换为一个平面水平表格,如下面的表格,其中
parent
列被展平并分布在从左到右显示层次结构的多个列中:

parent  descendent_1  descendent_2   descendent_n+1     id    name   
  null          null          null              ...      1     aaa                 
     1          null          null              ...      2     bbb                
     1          null          null              ...      3     ccc         
     1             2          null              ...      4     ddd         
     1             2          null              ...      5     eee         
     1             2             5              ...      6     fff         
深度可能因记录而异。 以下是一个数据集示例:

CREATE TABLE table_1 (id int, name text, parent int);

INSERT INTO table_1 VALUES
(1,'aaa',null),
(2,'bbb',1),
(3,'ccc',1),
(4,'ddd',2),
(5,'eee',2),
(6,'fff',5),
(7,'ggg',6),
(8,'hhh',7),
(9,'iii',3),
(10,'jjj',3),
(11,'kkk',8),
(12,'lll',11);

万分感谢

使用递归-cte@KamilG. 我有点明白你的意思,但我不知道如何使用递归cte添加未知数量的列?这需要一个在字符串中构建动态SQL语句的过程来添加列。更复杂的事情。请提供一个,即一个定制的玩具数据库的样本数据。为此,请使用
.dump
功能或列出几行
create
插入…
。另外,请解释你想要的输出。我看到三个标题相同的列“id”。哪个是哪个?@Yunnosch我编辑了列名。我需要的是从深到平的水平结构,而不知道深度。作为卡米尔格。注意到我需要递归,但这就是我被卡住的地方。