connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点。
造测试数据如下:
CREATE TABLE t_menu (
id int,
name varchar(20),
parent_id int)
INSERT INTO t_menu values(1,'菜单01',0);
INSERT INTO t_menu values(2,'菜单02',0);
INSERT INTO t_menu values(3,'菜单03',0);
INSERT INTO t_menu values(4,'菜单0101',1);
INSERT INTO t_menu values(5,'菜单0102',1);
INSERT INTO t_menu values(6,'菜单0103',1);
INSERT INTO t_menu values(7,'菜单010101',4);
INSERT INTO t_menu values(8,'菜单010201',5);
INSERT INTO t_menu values(9,'菜单010301',6);
INSERT INTO t_menu values(10,'菜单0201',2);
INSERT INTO t_menu values(11,'菜单0202',2);
INSERT INTO t_menu values(12,'菜单020101',10);
INSERT INTO t_menu values(13,'菜单020102',10);

select * from table [start with condition1] connect by [prior] id=parentid
--start with和connect by 先后顺序不影响结果
start with co

本文介绍了Oracle数据库中ConnectBy技术的使用,展示了如何通过级联查询获取具有树形结构的菜单数据,包括startwith和connectby的配合、prior关键字的应用以及connect_by_isleaf伪列的使用。通过实例演示了查询子孙节点、排除自身节点以及父节点横向查询的方法。

182

被折叠的 条评论
为什么被折叠?



