mysql中的递归调用

首先,创建一个熟悉的组织表。

插入几个测试数据:

Union all是一个初始化语句,只会执行一次,找到开发部门的这行记录。

接下来,下面的join将使用初始化后的语句转到原来的organization表,获取开发部门的所有子部门,然后使用这些子部门来联接更低的部门。

实施的结果如下:

如果要如下查询开发部门的所有上级部门,只需修改上面的递归查询语句:

实施结果如下:

递归公用表表达式“temp”不能包含这两者

递归查询块中的聚合或非窗口函数

关系型数据库

Mysql对递归的深度有限制,默认的递归深度是1000。

您可以显示类似“cte _ max _ recurrence _ depth”的变量;仔细讨论

还可以通过select语句的最大执行时间显示递归,显示变量李乐' max _ execution _ time ';