其中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 行受影响)