1
我有一個如下所示的具有某個級別(最多5級)的表。我想創建一個程序來獲取一些id並返回項目和他們的孩子......我不知道如何處理它! (當REFID是1,則意味着該節點是在第一電平的親本)在sql中獲取遞歸表的子項目
我有一個如下所示的具有某個級別(最多5級)的表。我想創建一個程序來獲取一些id並返回項目和他們的孩子......我不知道如何處理它! (當REFID是1,則意味着該節點是在第一電平的親本)在sql中獲取遞歸表的子項目
DECLARE @Table TABLE(
ID INT,
ParentID INT,
NAME VARCHAR(20)
)
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 1, NULL, 'A'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 2, 1, 'B-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 3, 1, 'B-2'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 4, 2, 'C-1'
INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 5, 2, 'C-2'
DECLARE @ID INT
SELECT @ID = 2
;WITH ret AS(
SELECT *
FROM @Table
WHERE ID = @ID
UNION ALL
SELECT t.*
FROM @Table t INNER JOIN
ret r ON t.ParentID = r.ID
)
SELECT *
FROM ret
您已REFID不在表中存在。 – 2014-10-19 10:37:31
@HamletHakobyan對不起,我忘了提及它。我更新了這個問題。 – 2014-10-19 10:44:20
[T-SQL查詢:獲取父節點的子節點](http://stackoverflow.com/questions/3601900/t-sql-query-getting-child-nodes-of-a-parent)或[如何獲取所有的孩子ID](http://stackoverflow.com/questions/11435788/how-to-get-all-the-child-ids) – bummi 2014-10-19 11:15:03