oracle 加条件 向上递归查询_oracle递归查询

语法:

select *

from tablename t start with column =?

connect by [prior] t.id =[prior]t.parentid

例如:菜单表,表结构如下

数据如下:

一、从上向下查

1、查询某个指定id的所有下级菜单

select * fromtb_menu t

startwith t."PARENT" = 1connectby prior t."ID" = t."PARENT"

注:从上向下查,就是指定某个节点,查询其下所有的子节点(包含直接子节点和非直接子节点),故start with 条件接parent = ?;

而connect by是指定递归时记录与记录间的关系;

最重要的区分是prior:从上向下查,1作为parent,故将prior放在parent字段的另外一边,即表示查询所有的子条目

效果图:

2、查询某个指定id的所有下级菜单及该指定id的菜单信息

select * fromtb_menu t

startwith t.id = 1connectby prior t."ID" = t."PARENT"

注

你可能感兴趣的:(oracle,加条件,向上递归查询)