表 table :字段ID,ParentId,Name
表中信息如下:
1 0 ,‘aa’;
2 1 , ‘bb’;
3 1 , 'cc';
4 2 , 'dd';
5 3 , 'ee';
6 , 'asdf';
7 0,'sdf';
8 7, 'sadfa'
....
...
其中第一条为根节点,2,3为1的子节点,4为2的子节点,5为3的子节点,表中还有
很多别的信息(第6)或者别的根节点和子节点的信息,应如何找出某个根节点下所有子节点的信息?
用with语句可以很方便的查询出:
WITH ALLNews(Id,ParentId,Name)
AS
(
SELECT Id,ParentId,Name FROM table
WHERE ID = 1
UNION ALL
SELECT L.Id,L.ParentId L.Name FROM table L
INNER JOIN ALLNews P ON L.ParentId = P.Id
)
SELECT Id,ParentId Name FROM ALLNews order by ID