Oracle级联查询

在ORACLE数据库中有一种方法可以实现级联查询select*//要查询的字段fromtable//具有子接点ID与父接点ID的表startwithselfid=id//给定一个

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在ORACLE 数据库中有一种方法可以实现级联查询
 
select  *                //要查询的字段
from table              //具有子接点ID与父接点ID的表 
start with selfid=id      //给定一个startid(字段名为子接点ID,及开始的ID号)
connect by prior selfid=parentid       //联接条件为子接点等于父接点
 
这个SQL主要用于级联查询,给一个父接点可以查出所有的子接点。及子接点的子接点,一查到底,很实用。
 
例:航班表
airline,如何用sql语句查询出从广州出发能到达的所有目的地,允许任意中转。
 
FLIGHTNO ORIGIN  DESTINATION

——————————————-

cz3001  CAN  CSX

cz3002  CAN  SHA

cz3003  CSX  SHA

cz3004  CSX  PEK

cz3005  SHA  XIY

cz3006  SHA  SWA

cz3007  PEK  URC

cz3008  PVC  AMS

cz3009  WUH  PVC

cz3010  WUH  XIY
 
这里根就是CAN,SQL语句如下:
 

select t.destination from airline t start with origin=’CAN‘ connect by prior destination = origin;
 
查询结果:

DESTINATION

——————-

CSX  

SHA  

XIY  

SWA  

PEK  

URC  

SHA  

XIY  

SWA 
 

9 rows selected.
 
--------------------------------
 
 
在网上看到下面的例子应该更容易理解些,转载一下:
 
 
数据结构如下:

t1

 t11

     t111

        t1111

 t12

     t121

        t1211

 

db数据字段如下:

task_id             task_name         t.parent_task_id       ***

***                     ***                          ***                               ***

000001            t1                         ***                                 ***

000002            t11                       000001                        ***

000005            t12                       000001                         ***

000003            t111                    000002                         ***

000004            t1111                  000003                         ***

000006            t121                    000005                         ***

000007            t1211                  000006                         ***

***                     ***                       ***                                 ***

查询语句:

select t.task_id ,t.task_name ,t.parent_task_id 

from t_task t 

start with task_id=’000001′

connect by prior task_id = parent_task_id;
http://roucheng.cnblogs.com/

结果显示:

task_id                 task_name          t.parent_task_id

000001                t1           

000002                t11                       000001

000003                t111                     000002

000004                t1111                    000003

000005                t12                       000001

000006                t121                     000005

000007                t1211                   000006

strat with 指定层次开始的条件,即是说满足这个条件的行即可以做为层次树的最顶层 
  
connect by prior指层之间的关联条件,即什么样的行是上层行的子行(自连接条件)
 
select level ,id,name,parentid from temptable2 
  connect by prior parentid(属于顶层的列)=id(子层的列)  start with id =1

http://www.cnblogs.com/roucheng/p/5404594.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120618.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2010中出现lnk2019和lnk1120错误

    vs2010中出现lnk2019和lnk1120错误非常令人难受的是,今天在配置Cocos2d-x的时候,配置完突然出现这个问题,我以为VS2010给我弄崩了,吓得我瞬间慌了不过研究了好几篇文章才发现这个一点关系都没有。 下面说一下到底出了什么问题:创建项目的时候选错了!!!!创建项目的时候选错了!!!!创建项目的时候选错了!!!! 不要怀疑,真的很有可能是项目选错了!我看了别人发了一堆什么长篇大论,作为小白…

    2022年10月6日
    0
  • 鸿蒙二部曲之一,网文封神之作,“鸿蒙二部曲”和“斗罗四部曲”你选择站哪边?…

    鸿蒙二部曲之一,网文封神之作,“鸿蒙二部曲”和“斗罗四部曲”你选择站哪边?…谈到网络小说,绕不过的就是辰东的“遮天三部曲”、酒徒的“隋唐三部曲”、西红柿的“鸿蒙二部曲”、冰清玉洁唐三少的“斗罗四部曲”了。当然还有其他的许许多多的小说也是同样精彩的。“鸿蒙二部曲”首先我们一起看一下我吃西红柿的“鸿蒙二部曲”,在我吃西红柿的创作里面的《盘龙》和《星辰变》,里面的主角林雷和秦羽最后都是成了鸿蒙掌控者级别的人物。每次说到鸿蒙二部曲的时候,总有些人会说为什么没有《吞噬星空》的罗峰啊…

    2022年6月17日
    35
  • 自动下载forumdisplay.php,forumdisplay.php

    自动下载forumdisplay.php,forumdisplay.php/*[Discuz!](C)2001-2009ComsenzInc.ThisisNOTafreeware,useissubjecttolicenseterms$Id:forumdisplay.php169462008-11-2805:30:28Ztiger$*/define(‘CURSCRIPT’,’forumdisplay’);require_once’…

    2022年7月13日
    12
  • IntelliJ IDEA安装教程(超详细)「建议收藏」

    IntelliJ IDEA安装教程(超详细)「建议收藏」IDEA安装教程目录一、JDK的彻底卸载(选做)二、JDK的安装三、IDEA的安装四、IDEA的“扩展”教程五、代码测试六、Error:Cannotdeterminepathto’tools.jar’libraryfor17(D:\jdk-17.0.1)报错的解决方案七、说明写在前面:JDK版本要与IDEA版本相匹配,不然会报错嗷(即:第六节所示)!因为我之前有JDK,所以为了更好的演示,我先把JDK17卸载了。如果你有JDK请查看你的JDK版本后进行第二步(…

    2022年6月26日
    66
  • tensorflow中常用激活函数和损失函数

    激活函数各激活函数曲线对比常用激活函数:tf.sigmoid()tf.tanh()tf.nn.relu()tf.nn.softplus()tf.nn.softmax()tf.nn.dr

    2021年12月30日
    46
  • 前端页面图片加载失败显示默认图片

    前端页面图片加载失败显示默认图片方法有多种:1.首先说我用的,看代码//页面图片加载失败时默认显示统一处理document.addEventListener("error",function(e){  varelem=e.target;  if(elem.tagName.toLowerCase()=="img"){    elem.src="/image/General/errorDef…

    2022年6月2日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号