假设有一个名为people的表,其中包含以下列:
> person_id(整数)
> parent_person_id(整数)
> name(varchar)
现在,假设表格已经填充,名称值只是字母(A,B,C,D ……).考虑到每个人的父母,我们最终得到了一个像下面那样的分层树.值的格式如下:
person_id,parent_person_id,name
> 1,1,A
> 2,2,B
> 3,2,C
> 4,3,D
> 5,2,E
> 6,5,F
> 7,6,G
> 8,6,H
考虑上面的结构,A& B作为第一代,C& E作为第二代,D& F作为第三代和G& H作为第四代.对于第一代元素,parent_person_id等于元素的person_id.
我需要编写一个查询,允许我从树的某一代(第一,第二,第三,第四等)中选择名称.结果,我可以得到一个表格,其中包含来自某一代人的用户名.例如:
第一代
person name | parent name
A | A
B | B
第二代
person name | parent name
C | B
E | B
第三代
person name | parent name
D | C
F | E
第四代
person name | parent name
G | F
H | F
我想传递一个参数来定义每一代应该在下面的查询中列为子代.