首页 > 其他分享 >关于oracel 递归语法start with connect by 和 left join 一起使用的一个bug

关于oracel 递归语法start with connect by 和 left join 一起使用的一个bug

时间:2023-04-26 09:44:07浏览次数:40  
标签:TMP join 递归 oracel start 表中 ORG ID SELECT

左表为树状结构机构表A,右表为人员表(有机构ID字段)B

SELECT A.*, B.*
  FROM A
  LEFT JOIN B
    ON A.ORG_ID = B.ORG_ID
 START WITH A.ORG_ID = '011000000004'
CONNECT BY PRIOR A.ORG_ID = A.P_ORG_ID

查询结果出现,B表中的1条记录,最后重复出现。(最终的结果可能为:对 A 和 B 连接后的临时表,进行递归查询)因为B表中某一个机构ID的记录有多条,导致连接后,该ID的记录有多条,进行了多次递归,导致重复出现?

 

解决方法,先用with as 临时表对A,先做递归,然后再左连接B

WITH TMP_ORG AS
 (SELECT *
    FROM A
   START WITH A.ORG_ID = '011000000004'
  CONNECT BY PRIOR A.ORG_ID = A.P_ORG_ID)
SELECT T.*, B.* FROM TMP_ORG T LEFT JOIN B ON T.ORG_ID = B.ORG_ID

 

标签:TMP,join,递归,oracel,start,表中,ORG,ID,SELECT
From: https://www.cnblogs.com/moonsoft/p/17354720.html

相关文章

  • 虚拟机|--Hyper-V|--Start PXE over IPv4.报错解决方案
    前言在Hyper-V管理器中>>操作>>"快速创建"了一个WIndowsXP系统的虚拟机,结果启动的时候报错了解决方案在创建虚拟机的时候不要快速创建,而使用新建,在指定代数步骤选择第一代(1),开始创建的步骤改一下就可以了.其他配置推荐在分配内存步骤我写的是8000M左右,(根......
  • join on(内连接)
    内连接:joinon,取得是交集语法格式:select(字段)from(表1)join(表2)on(关联字段)grade表                                         student表   joinon举例:1.两张表相连,取交集......
  • ContextPath must start with '' and not end with ''
    1、问题运行SpringBoot项目,发生java.lang.IllegalArgumentException异常,原因如下:ContextPathmuststartwith'/'andnotendwith'/'完整的Run输出如下:._________/\\/___'_____(_)______\\\\(()\___......
  • vue3+jointjs 使用模板添加元素
    关于如何在Vue3和JointJS中使用拖拽模板来创建节点元素,可以按照以下步骤进行:1.安装JointJS使用npm进行安装:```npminstalljointjs```2.在Vue3中创建JointJS容器在Vue3中创建一个组件,用于创建JointJS的画布和节点。在组件的生命周期方法`mounted`......
  • [REACT_DOC]-Quick Start
    目录QuickStart创建以及嵌套组件用JSX书写标记(markup)添加样式展示数据条件渲染列表渲染事件响应更新屏幕使用Hooks在组件之间共享数据QuickStart概览:如何创建以及嵌套组件如何添加markup和样式如何展示数据如何条件渲染,如何渲染列表如何响应事件并更新渲染如何......
  • vue3+jointjs demo
    下面是使用Vue3和JointJS添加元素的示例代码:1.安装JointJS```terminalnpminstalljointjs--save```2.创建JointJS图形```javascriptimport{ref,onMounted}from'vue';import*asjointfrom'jointjs';exportdefault{setup(){constgraphC......
  • filebeat篇章——QuitStart in K8S
    QuitStartinK8S---apiVersion:v1kind:ConfigMapmetadata:name:filebeat-script-confignamespace:ops-departmentlabels:k8s-app:filebeatdata:set-kafka-topic.js:|functionprocess(event){if(event.Get("kubernetes.name......
  • A stop job is running for LSB:start and stop redis_6379
     修改/etc/init.d/redis_6379(stop下红框中内容,格式:$CLIEXEC-a"password" -p$REDISPORTshutdown)  ......
  • 自定义starter
    将redis生成分布式唯一id的功能封装成starter供其他模块使用1 编写业务类packagecom.yangkun.redis;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.StringRedisTemplate;importorg.springframework.tran......
  • 02-httprunner创建脚手架报错解决方法:httprunner: error: invalid choice: ‘startpro
      转载:https://blog.csdn.net/qq_33940095/article/details/128191841安装完httprunner版本4.1.3后进行创建脚手架是报错  经过百度发现是与python(3.7.6)版本不匹配.卸载httprunner重新安装低版本的httprunner卸载:pipuninstallHttpRunner  ......