mysql - mysql上的逆递归树形菜单

标签 mysql sql tree

我的网站中有一个非常简单的递归类别树表

id
name
parent_id

通常人们希望向 child 展示从 parent 到 child 的整棵树

就我而言,我有 child 的 ID,我需要执行相反的操作,创建从 child 到 parent 的树

假设我有以下树:

1 - Computer
 2 - Storage
  5 - HDD
  6 - SSD
 3 - Motherboard
  7 - AMD
  8 - Intel
 4 - Graphics Card  
  9 - Nvidia
  10 - AMD

我有子类别 6 和 10 的 ID

6 - SSD
10 - AMD

在一个选择中,我需要检索这些类别 6 和 10 的所有父级以创建如下所示的树:

1 - Computer
 2 - Storage
  6 - SSD
 4 - Graphics Card  
  10 - AMD

那么,我该怎么做呢?

最佳答案

我认为这可以帮助你:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

如果您知道子级别的最大数量,例如 3,您可以执行以下操作:

SELECT t1.id, t1.name, t2.id, t2.name, t3.id, t3.name
FROM table t1
INNER JOIN table t2
    ON t1.parent_id = t2.id
INNER JOIN table t3
    ON t2.parent_id = t3.id
WHERE t1.id IN (6, 10)

关于mysql - mysql上的逆递归树形菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25025026/

相关文章:

mysql - SQL Group By Order BY 在日期时间列上降序

php - 在嵌套 foreach 循环内使用 MySQL 查询的缓慢 Excel 报告 [Laravel 5.3]

mysql - 使用 3 个不同变量通过 INNER JOIN 获取价格

mysql - 在 mysql 查询中使用最小值、最大值和平均值

mysql - 我们可以进一步简化这个 MySQL 查询吗?

java - 打印二叉树路径时数组初始化冗余零

java - BindingResult 和 bean 名称 'owner' 的普通目标对象都不能作为请求属性

mysql - SQL - 检索过去 7 天的最后一天记录

graph - 从 Clojure 中表示为向量的树中获取边

javascript - 在javascript中从平面数组构建树数组