SQL 的WITH RECURSIVE用法举例
时间: 2023-05-20 19:01:13 浏览: 593
with 用法範例
WITH RECURSIVE是一种递归查询的方式,可以在SQL中实现树形结构的查询。举个例子,假设我们有一个表格叫做employee,其中包含了员工的id、姓名、上级id等信息。我们可以使用WITH RECURSIVE来查询某个员工的所有下属,包括下属的下属,以此类推。
WITH RECURSIVE subordinates(id, name, manager_id, depth) AS (
SELECT id, name, manager_id, 0 FROM employee WHERE id = 1 -- 假设要查询id为1的员工的所有下属
UNION ALL
SELECT e.id, e.name, e.manager_id, s.depth + 1 FROM employee e
JOIN subordinates s ON e.manager_id = s.id
)
SELECT id, name, manager_id, depth FROM subordinates;
这个查询会返回一个包含所有下属的表格,其中每一行都包含了员工的id、姓名、上级id以及该员工在树形结构中的深度。
阅读全文