mysql中,我有两个字段instance_id和link_id,其中link_id为父id,怎么根据instance_id递归向上查询
时间: 2024-05-31 08:10:16 浏览: 111
MySQL通过自定义函数实现递归查询父级ID或者子级ID
5星 · 资源好评率100%
您可以使用MySQL的递归查询功能来实现根据instance_id递归向上查询。具体步骤如下:
1. 创建一个临时表t,该表用于保存查询结果。
2. 插入初始的instance_id作为第一条记录。
3. 通过JOIN子句将t表和原始表连接起来,以获取每个instance_id的link_id。
4. 将link_id插入到t表中。
5. 重复步骤3和4,直到没有更多的link_id可以查询。
以下是一个示例查询:
WITH RECURSIVE t(instance_id, link_id) AS (
SELECT instance_id, link_id FROM your_table WHERE instance_id = 'initial_value'
UNION ALL
SELECT your_table.instance_id, your_table.link_id FROM your_table
JOIN t ON your_table.instance_id = t.link_id
)
SELECT * FROM t;
上面的查询将返回从初始instance_id到其所有父节点的instance_id和link_id。
阅读全文