ORACLE数据库的级联查询

本文介绍了一种使用SQL进行父子节点查询的方法,通过start with和connect by prior子句实现层级数据的排序检索。示例展示了如何根据给定的顶级节点查询其下的所有子节点及其层级关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景描述

存在一张表信息如下:

titlefather
水果top
苹果水果
荔枝水果
香蕉水果
电器top
冰箱电器
洗衣机电器
电视电器
西瓜水果

数据库存储的数据为无序的,需求描述为按照水果--属于水果的二级--电器--数据电器的二级方式进行数据排序

解决方案

SQL > select * from wen start with father='top' connect by prior title=father;

查询输出结果

水果    top
苹果    水果
荔枝    水果
西瓜    水果
香蕉    水果
电器    top
冰箱    电器
洗衣机    电器
电视    电器

SQL解析

查询某条数据下是否存在子节点

select *          //要查询的字段
from table      //具有子接点id和父接点id的表
start with faterid=id数据           //给定一个开始查询的id(字段名为父接点id,以及开始的id数据)
connect by prior childid= pid    //联接条件为子接点等于父接点
示例如上所示

查询某条数据下是否有父节点

select *          //要查询的字段
from table      //具有子接点id和父接点id的表
start with childid=id数据          //给定一个开始查询的id(字段名为子接点id,以及开始的id数据)
connect by prior childid= pid    //联接条件为子接点等于父接点

示例:

SQL > select * from wen start with title='香蕉' connect by prior title=father;

查询结果如下

香蕉   水果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wenxuechaozhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值