使用With递归查询 树
WITH CTE AS (
--
一个定位点成员SELECT a.* FROM tree a WHERE pid = 0
UNION ALL
--
递归成员SELECT a.* FROM tree a JOIN CTE c ON a.pid = c.id
)
SELECT * from CTE
- --1.将 CTE 表达式拆分为定位点成员和递归成员。
- --2.运行定位点成员,创建第一个调用或基准结果集 (T0)。
- --3.运行递归成员,将 Ti 作为输入(这里只有一条记录),将 Ti+1 作为输出。
- --4.重复步骤 3,直到返回空集。
- --5.返回结果集。这是对 T0 到 Tn 执行 UNION ALL 的结果。