星空网 > 软件开发 > 数据库

oracle和postgresql 递归查询父子关系记录语法区别

oracle:

一、数据

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 * from …. Where [结果过滤条件语句]
  Start with  [and起始条件过滤语句]
  Connect by prior [and中间记录过滤条件语句]
三、查找所有下级
        select * from tablename start with id=1 connect by prior id=pid
  注意:此sql能查找id=1的数据的所有下级,写sql语句时要注意,因为是从id开始查找下级,所以connect by prior 子句的条件是         id=pid
四、查找所有上级
       select * from tablename start with id=5 connect by prior pid=id
  因为是从id开始查找上级,所以connect by prior 子句的条件是pid=d

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;

五、显示结果

结果显示:

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

postgresql:

查询父节点下所有的子节点

WITH recursive fileinfo (pk_fi_id, f_fi_parentid)AS(SELECT    pk_fi_id ,    f_fi_parentid   FROM    t_fileinfo  WHERE    pk_fi_id = '92719f78-22d6-4db1-a484-dff34de76890'UNION ALLSELECT      mm.pk_fi_id ,      mm.f_fi_parentid     FROM      t_fileinfo AS mmINNER JOIN fileinfo AS child ON mm.f_fi_parentid = child.pk_fi_id)SELECT *FROM fileinfo

 




原标题:oracle和postgresql 递归查询父子关系记录语法区别

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

2022出海南亚:孟加拉电商市场现状及发展前景:https://www.ikjzd.com/articles/1583370166209310722
中国卖家的美国商标还好吗,美国资深律师这样看!:https://www.ikjzd.com/articles/1583376195395526657
全体跨境人在这里吵架?!亚马逊五年运营都哭了:https://www.ikjzd.com/articles/1583395064013090817
2019年亚马逊快速选品别丢掉这些基本逻辑:https://www.ikjzd.com/articles/15834
Shein Exchange:中国快时尚巨头推出二手转售平台:https://www.ikjzd.com/articles/1583403438796709889
亚马逊官方公布2018中小企业卖家最新数据,逾5万家销售额超过50万美元!:https://www.ikjzd.com/articles/15835
北京景点恢复开放通知 北京景区关闭通知:https://www.vstour.cn/a/404230.html
济南冬季旅游攻略最美的冬天特色景点推荐:https://www.vstour.cn/a/404231.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流