一条SQL语句查询父子级

我们在设计表的时候可能会把父子级关系放在一张表。
如:表o_Organization有字段PID,ID,[Description],Org_Type,OrgAll,AccountID
其中ID是主键。PID表示父级ID,同时这个父级ID又是Organization表的主键ID。
 
表是这样设计的,要怎么才能一条SQL查询一个父级ID下包含多少子集呢?
如下:
WITH o_Organization1(ID, PID,[Description],Org,Org_Type,OrgAll, EmployeeLevel) AS    
( SELECT ID, PID,[Description],Org,Org_Type,OrgAll, 0 AS EmployeeLevel    
FROM    o_Organization WHERE PID=条件 UNION ALL SELECT e.ID, e.PID,e.[Description],e.Org,e.Org_Type,e.OrgAll,EmployeeLevel + 1    
FROM o_Organization e INNER JOIN o_Organization1 d ON e.PID = d.ID ) SELECT * FROM o_Organization1
这样就可以查询出父级ID下的子集了!代码中的条件是你要查询的父级ID。

你可能感兴趣的:(数据库,休闲,父子级,一条SQL语句查询父子级,一条SQL语句)