我需要进行分层查询,作为附加输出,我需要显示数据树中每个节点的生成。
最大代数是已知的,但是对于不同的祖先,一个节点可能在不同的代中。
最后,我需要一个表格来显示每个第一代条目的所有后代,可能条目出现多次。
起始表(例如:路由查找器,最大代数 3):
ID_object | name_object | ID_parent
-----------------------------------
1 | Bus Line 1 | NULL
2 | Bus Line 2 | 1
3 | Tram Line 1 | 1
4 | Train Line 1| 3
5 | Tram Line 2 | 6
6 | Train Line 2| NULL
7 | Bus Line 3 | 3
结果表应如下所示:
ID_object | name_object | ID_ancestor | ID_parent | Generation
1 | Bus Line 1 | 1 | NULL | 1
2 | Bus Line 2 | 1 | 1 | 2
3 | Tram Line 1 | 1 | 1 | 2
4 | Train Line 1| 1 | 3 | 3
7 | Bus Line 3 | 1 | 3 | 3
6 | Train Line 2| 2 | NULL | 1
5 | Tram Line 2 | 2 | 6 | 2
如何有效地计算生成?我的第一个想法,来自更多的过程编程,作为递归,但这在 MySQL 中不起作用......