zoukankan      html  css  js  c++  java
  • SQLSERVER的递归查询

     
    项目中有用户组表UserGroup如下:
    其中PID表示当前组的上级组
    表数据如下:
    现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,SQL如下:
    [sql]  www.2cto.com 
    --查询子节点 
    with  
        RTD1 as( 
    select id ,pid from UserGroup
        ), 
        RTD2 as( 
            select * from RTD1 where id=6 
            union all 
            select RTD1.* from RTD2 inner join RTD1  
            on RTD2.id=RTD1.PID 
        ) 
    select * from RTD2 
      www.2cto.com 
    查询结果如下:
    id          pid
    ----------- -----------
    6           NULL
    17          6
    18          6
    20          6
    21          20
    22          20
    23          20
    24          20
    29          20
    25          23
    26          23
    28          26
    27          25
    (13 行受影响)
     
    现在想查询出A1-B3-C3-D2组的所有上级组ID,SQL如下:
    [sql]
    --查询父节点 
    with  
        RTU1 as( 
            select id ,pid from UserGroup 
        ), 
        RTU2 as( 
            select * from RTU1 where id=26 
            union all 
            select RTU1.* from RTU2 inner join RTU1  
            --on myT2.id=myT.PID 
            on RTU2.PID=RTU1.ID 
        )    www.2cto.com 
    select * from RTU2 
     
    查询结果如下:
    id          pid
    ----------- -----------
    26          23
    23          20
    20          6
    6           NULL
    (4 行受影响)
     
  • 相关阅读:
    38) 收集centos所有版本镜像下载地址
    37) 查看linux 操作系统为多少位
    php面向对象高级应用一
    php form表单的验证+提交到数据库
    php获取form表单数据
    php form表单的提交
    php form表单概念
    php日期和时间的应用
    php日期和时间函数
    php字符串函数操作实例(2)
  • 原文地址:https://www.cnblogs.com/tanbin1766/p/3156268.html
Copyright © 2011-2022 走看看