前几天做开发时发现需要查询同一张菜单表,菜单的结构特点就是存在父节点。而功能需求就是在已知父节点的情况下查询下面所 有的子节点。
with subqry(menuid,abvmenuid,menuname) as (
select menuid,abvmenuid,menuname
from 菜单表
where menuid = '父节点'
union all
select 菜单表.menuid,菜单表.abvmenuid,菜单表.menuname
from 菜单表,subqry
where 菜单表.abvmenuid = subqry.menuid
)
select * from subqry;//必须查询,否则会报错。查询结果不能作为一张表进行查询