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=''
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 ALL
SELECT
mm.pk_fi_id ,
mm.f_fi_parentid
FROM
t_fileinfo AS mm
INNER JOIN fileinfo AS child ON mm.f_fi_parentid = child.pk_fi_id
)
SELECT
*
FROM fileinfo

最新文章

  1. Linux系统管理员面试50题
  2. HDU 1023 Traning Problem (2) 高精度卡特兰数
  3. 0x01第一个汇编程序
  4. BW性能优化
  5. CentOS 6下安装nodejs 0.9.0
  6. VIM+qmake编译示例程序HelloQt出错问题的解决(文件名一定要使用.cpp,否则就会默认使用gcc编译,当然通不过)
  7. A Game of Thrones(13) - Tyrion
  8. apache 修改连接数(转)
  9. bzoj 3930: [CQOI2015]选数
  10. redux+saga+reducer
  11. 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)
  12. python之装饰器(函数)
  13. Linux 内存文件系统
  14. 10.9 Xadmin
  15. CentOS下如何根据Dump文件分析线上问题
  16. "ERR unknown command 'cluster'"
  17. go语言练习:文件哈希
  18. jquery实现显示textarea输入字符数
  19. day40 数据结构-算法(二)
  20. Markdown安装与简单使用

热门文章

  1. 不可或缺 Windows Native (15) - C++: 命名空间
  2. Delphi 10.1 Berlin UTF8String Test
  3. 点我吧工作总结(技术篇) Cobar原理和环境搭建
  4. 创业小坑:内网域名 在windows下能nslookup,但ping不通,也无法访问。而在linux下正常。
  5. Date类型 方法
  6. React入门--------顶层API
  7. Oracle EXP-00091的解决方法
  8. 内网渗透测试思路-FREEBUF
  9. Maltego实体分类与Transform
  10. SQLite Design and Concepts