好的,我有一张这样的表:
ThingID SubthingID ThingLevel
1 1 0
1 2 0
1 3 0
1 4 0
2 14 1
2 17 1
3 22 1
3 950 1
我需要选择一组子东西,这样我最终得到一个来自0级东西的子东西,以及所有子东西的组合,每个来自1级东西。请注意,每个子东西属于它的东西 - 它们不可互换。因此,不能说,事物2与子事物950的组合。此外,事物有两个级别 - 级别0和级别1.级别1事物也是级别1,级别0事物总是级别0 - 实际上,这意味着1级事物可以与其他1级或0级事物组合,但0级事物只能与1级事物相结合。
所以输出看起来像是:
GroupID ThingID SubthingID ThingLevel
1 1 1 0
1 2 14 1
1 3 22 1
2 1 2 0
2 2 14 1
2 3 22 1
3 1 3 0
3 2 14 1
3 3 22 1
. . . .
. . . .
. . . .
x 1 4 0
x 2 17 1
x 3 950 1
有多个0级的东西,每个都有一个到多个子东西。有多个1级的东西,每个都有一个到多个子东西。
直接看来,似乎nexted循环就是答案:
For each level 0 thing begin
for each level 1 thing subthing begin
etc...
但这显然不会处理一级事物的可变数量。
有没有办法用递归来做到这一点?