13. Mysql 使用WITH进行复杂和递归查询
WITH RECURSIVE rec_tree AS (
SELECT
node.id,
node.parent_id,
node.name
FROM
categories AS node
WHERE
node.parent_id IS NULL
UNION ALL
SELECT
child.id,
child.parent_id,
child.name
FROM
categories AS child
INNER JOIN rec_tree ON child.parent_id = rec_tree.id
)
SELECT * FROM rec_tree;
这个例子展示了如何使用WITH RECURSIVE
语句来构建一个递归查询,它会从一个分类表中获取所有子分类的名称。这个查询以一个顶级分类(即没有父分类的分类)开始,然后递归地加入所有子分类。最后的SELECT
语句用于展示递归查询结果。这个查询可以用于构建分层的菜单、导航列表或进行其他需要递归处理的任务。
评论已关闭