Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQLServer2008中的递归_Sql Server_Recursion_Common Table Expression - Fatal编程技术网

Sql server SQLServer2008中的递归

Sql server SQLServer2008中的递归,sql-server,recursion,common-table-expression,Sql Server,Recursion,Common Table Expression,select*from MyTable给出以下结果, 现在,如果我通过“胸部”的id,我想获得所有孩子的id 例如,如果我传递了'ChestOne'的id,我想得到下表 我尝试了以下方法,但没有得到结果 ;WITH Temp_CTE AS ( SELECT id ,name ,parent_id FROM dbo.MyTable WHERE id = '12D390AE-FF28-4D50-B3A2-A6CC4E6E02A9' UNION ALL SELECT

select*from MyTable
给出以下结果,

现在,如果我通过“胸部”的id,我想获得所有孩子的id

例如,如果我传递了'ChestOne'的id,我想得到下表

我尝试了以下方法,但没有得到结果

;WITH Temp_CTE AS
(
SELECT 
     id
    ,name
    ,parent_id
FROM dbo.MyTable
WHERE id = '12D390AE-FF28-4D50-B3A2-A6CC4E6E02A9'
UNION ALL 
SELECT 
     CS.id
    ,CS.name
    ,CS.parent_id
FROM dbo.MyTable CS
INNER JOIN Temp_CTE ON CS.id =  Temp_CTE.parent_id

)
SELECT * FROM Temp_CTE
如何在SQL Server 2008中实现这一点

我认为应该是:

;WITH Temp_CTE AS
(
SELECT 
     id
    ,name
    ,parent_id
FROM dbo.MyTable
WHERE id = '12D390AE-FF28-4D50-B3A2-A6CC4E6E02A9'
UNION ALL 
SELECT 
     CS.id
    ,CS.name
    ,CS.parent_id
FROM dbo.MyTable CS
INNER JOIN Temp_CTE ON CS.parent_id =  Temp_CTE.id

)
SELECT * FROM Temp_CTE
我认为应该是:

;WITH Temp_CTE AS
(
SELECT 
     id
    ,name
    ,parent_id
FROM dbo.MyTable
WHERE id = '12D390AE-FF28-4D50-B3A2-A6CC4E6E02A9'
UNION ALL 
SELECT 
     CS.id
    ,CS.name
    ,CS.parent_id
FROM dbo.MyTable CS
INNER JOIN Temp_CTE ON CS.parent_id =  Temp_CTE.id

)
SELECT * FROM Temp_CTE
结果:

id   name       parent_id
---- ---------- ---------
6D   ChestOne   12
CD   InCOne     6D
结果:

id   name       parent_id
---- ---------- ---------
6D   ChestOne   12
CD   InCOne     6D

试着改变你的加入方式<代码>CS.parent\u id=Temp\u CTE.id上的内部联接临时变量尝试更改您的联接<代码>CS.parent\u id=Temp\u CTE.id上的内部连接温度