mysql - 获取 MySQL 中分层类别的所有父级

标签 mysql sql hierarchical-data

我有一个如下所示的表格

cat_id  | name            |   parent_id |   Level
-------------------------------------------------
1         cat1                0             1
2         subcat1             1             2
3         subcat1-subcat      2             3

我想知道获取 cat_id 3类别的最有效方法是什么,所以我的结果集将如下所示

cat_id  | name            |   parent_id |   Level
--------------------------------------------------
1         cat1                0             1
2         subcat1             1             2

最佳答案

您必须执行多个查询。您想要升级的每个级别都有一个(或将其编写为存储过程)。

最有效的方法是不要使用所谓的“邻接列表模型”(您正在使用的模型),而是切换到“嵌套集”。

谷歌搜索“嵌套集”将为您提供大量信息。不过,您需要一些时间来适应它,并编写处理它的代码。

关于mysql - 获取 MySQL 中分层类别的所有父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8046018/

相关文章:

mysql - SQL 一对多关系

SQL Server 非标准基于日期的直方图

sql - 如何将这两个表连接在一起(MySQL,分层查询)?

sql - 带有子表的自引用表

mysql - 是否可以在单个查询中查询 MySQL 中的树结构表到任何深度?

c# - 使用 Mysql 表填充 C# ListView

java - JPA/MySql 问题

mysql - 有没有办法让行匹配? (除了受影响的行)

sql - cakephp 在执行前查看已编译的 SQL 查询

java - 如何确定数据库的 URL?