为了查询指定ID所有下级数据,你可以使用递归的公用表表达式(Common Table Expressions, CTEs)。以下是一个例子,假设你有一个名为categories
的表,它有id
和parent_id
字段,parent_id
表示父级分类的ID。
WITH RECURSIVE sub_categories AS (SELECT id, parent_idFROM categoriesWHERE id = ? # 替换成你要查询的ID值UNION ALLSELECT c.id, c.parent_idFROM categories cINNER JOIN sub_categories sc ON sc.id = c.parent_id
)
SELECT * FROM sub_categories;
在这个查询中,将?
替换为你想要查询的起始ID。递归从这个起始ID开始,遍历所有下级分类,直到没有更多下级分类为止。
请注意,你需要确保id
是唯一的,并且parent_id
是正确引用父级分类id
的外键。如果数据不一致或者没有正确设置外键约束,可能会导致无限递归。