mysql5.7 递归查询所有的历史合同
时间: 2024-04-26 13:17:05 浏览: 155
MySQL通过自定义函数实现递归查询父级ID或者子级ID
MySQL 5.7支持递归查询,可以使用WITH RECURSIVE语句来实现。下面是一个示例查询所有历史合同的递归查询语句:
```
WITH RECURSIVE contract_history AS (
SELECT id, contract_name, parent_id
FROM contracts
WHERE id = '当前合同ID'
UNION ALL
SELECT c.id, c.contract_name, c.parent_id
FROM contracts c
JOIN contract_history ch ON c.id = ch.parent_id
)
SELECT *
FROM contract_history;
```
上述查询中,`contracts`是存储合同信息的表,`id`是合同的唯一标识,`contract_name`是合同名称,`parent_id`是指向上一级合同的ID。你需要将`'当前合同ID'`替换为你要查询的合同的ID。
这个递归查询语句会从指定的合同开始,逐级向上查询所有的历史合同,直到没有上一级合同为止。最后的SELECT语句会返回所有查询到的历史合同的信息。
阅读全文