WITH RECURSIVE cte AS (
SELECT id, name, parent_id
FROM your_table
WHERE id = <your_id>
UNION ALL
SELECT t.id, t.name, t.parent_id
FROM your_table t
JOIN cte ON t.parent_id = cte.id
)
SELECT * FROM cte;
在上面的查询中,<your_id> 是你要查询的起始ID。递归查询会根据该ID找到其本级记录以及所有子级记录,直到没有更多的子级记录
在这个查询中,WITH RECURSIVE 子句创建了一个名为 cte 的临时结果集。初始查询找到没有父类的类别(即顶级类别),然后递归查询联接 your_table 表和 cte 临时表,以找到子类别。这个过程会一直继续,直到没有更多的子类别可用。