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

标签 php mysql database

这是我的表结构...

表:position_hierarchy_level

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

我获取某个 position_idparent_position_id 的查询是:

select `parent_position_id` from `position_hierarchy_level` where position_id= 15;

但是我怎样才能得到某个position_id 的最顶层父级呢?例如,position_id 15 的最顶层 parent_position_id 将是 1

有没有一种方便的方法可以使用单个查询来获取这个值?还是我需要在 PHP 中创建一个循环?

最佳答案

除非有 15 个或更多连接,否则您的数据库结构不会让您这样做。您正在使用邻接表模型。尝试使用 The nested set model

这里是 an example用 PHP

关于php - MySQL - 获取层次结构中的顶级父 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187088/

相关文章:

php - PHP 是否可以使用已经使用 count(*) 的查询来计算行数?

php - 在 Laravel (PHP) 中访问匿名函数中的范围外变量

php - SQL 选择查询适用于 phpMyAdmin,但不显示任何 PHP Web 服务的输出

具有高级数据库结构的 PHP 和真正的 MVC 结构

mysql - 如何从 Amazon mysql 数据库获取数据到 localhost(xampp)?

php - 如何输入echo值来完成查询?

php - 如果值在 mysql 中则返回 true

php - 由于 AJAX 请求,托管服务提供商阻止用户

php - 在 MySQL 准备语句的 WHERE 子句中使用通配符

mysql - 如何在保存到数据库之前合并数据?