【发布时间】:2016-07-13 00:00:33
【问题描述】:
我的行有相关的行,这些行可以有相关的行。这棵树可以向下很多层(未知)。如何根据一个参数找到我的树的级别数?
例如:
select * from category a
inner join category b on a.row=b.relatedRow
inner join category c on b.row=c.relatedRow where a.row=?
所以如果a 中有项目,则为1 级。如果b 中有项目,则为2 级,依此类推。这样我可以发现,如果row=1,有3个级别的其他项目是相关的。
【问题讨论】:
-
使用扁平树,例如闭包表:
| ancestorRow | descendantRow | depth |。查询:select max(depth) from category where ancestorRow = ?