MySQL - 获取层次结构中的顶级父 ID

rjm*_*mcb 5 php mysql database

这是我的表结构...

表:位置_层次结构_级别

id parent_position_id position_id
 1 1                  2
 2 2                  3
 3 3                  4
 4 4                  5
 5 5                  6
 6 6                  7
 7 7                  8
 8 8                  9
 9 9                  10
 10 10                11
 11 11                12
 12 12                13
 13 13                14
 14 14                15
Run Code Online (Sandbox Code Playgroud)

我获取parent_position_id某个的查询position_id是:

select `parent_position_id` from `position_hierarchy_level` where position_id= 15;
Run Code Online (Sandbox Code Playgroud)

但是我如何才能获得某个 的最顶层父级呢position_idparent_position_id例如,15 个中最上面的position_id将是1

有没有一种方便的方法可以使用单个查询获取该值?或者我需要在 PHP 中创建一个循环吗?

Shi*_*dim 4

除非有 15 个或更多连接,否则您的数据库结构不允许您这样做。您正在使用邻接列表模型。尝试使用嵌套集模型

这是一个使用 php 的例子