mysql5.7 with recursive
时间: 2023-06-28 19:12:24 浏览: 85
MySQL 5.7 added support for recursive common table expressions (CTEs), which can be used to perform recursive queries. Recursive CTEs allow you to perform hierarchical queries on data, such as finding all the descendants of a particular node in a tree structure.
Here's an example of how to use recursive CTEs in MySQL 5.7:
Suppose we have a table called `employees` that has the following columns: `id`, `name`, and `manager_id`. The `manager_id` column contains the id of the employee's manager. We want to find all the employees who report to a given manager, including indirect reports.
We can use a recursive CTE to accomplish this as follows:
```
WITH RECURSIVE employee_tree AS (
SELECT id, name, manager_id
FROM employees
WHERE id = <manager_id>
UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
JOIN employee_tree t ON e.manager_id = t.id
)
SELECT id, name
FROM employee_tree;
```
In this query, we define a recursive CTE called `employee_tree`. The initial query selects the employee with the given `manager_id`. The recursive part of the query joins the `employees` table with the `employee_tree` CTE on the `manager_id` column to find all the employees who report to the previously selected employees. This process continues recursively until no more matching rows are found.
Finally, we select the `id` and `name` columns from the `employee_tree` CTE to get the final result set.
Note that in order to use recursive CTEs, you must specify the `RECURSIVE` keyword after the `WITH` keyword.
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)