mysql递归查询所有父节点
时间: 2023-07-06 16:08:27 浏览: 114
MySQL递归查询树状表的子节点、父节点具体实现
在MySQL中,可以使用递归查询来查询所有父节点。假设有一个表格,其中包含id和parent_id两个列,表示每个节点的唯一标识和其父节点的唯一标识。下面是一个使用递归查询来查询所有父节点的示例:
```
WITH RECURSIVE cte (id, parent_id) AS (
SELECT id, parent_id FROM table_name WHERE id = 1
UNION ALL
SELECT t.id, t.parent_id FROM table_name t INNER JOIN cte ON t.id = cte.parent_id
)
SELECT id, parent_id FROM cte;
```
在这个例子中,我们使用了CTE(公共表表达式)来定义递归查询。首先,我们查询id=1的节点作为起始点。然后,我们使用UNION ALL将起始节点和其所有父节点组合在一起。最后,我们从CTE中选择所有的id和parent_id。请注意,这个递归查询的停止条件是当没有更多的父节点时停止。
阅读全文