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 行受影响)
     
  • 相关阅读:
    Servlet项目 创建方法
    1. 连接数据库
    Jsp application对象(全局变量)
    Jsp session属性、方法
    让python 3支持mysqldb的解决方法
    Python读写文件(进阶)
    python操作MongoDB
    使用Python Pandas处理亿级数据
    SurfingTheInternet
    matplotlib中日期显示(不显示为科学计数法)
  • 原文地址:https://www.cnblogs.com/tanbin1766/p/3156268.html
Copyright © 2011-2022 走看看