gpt4 book ai didi

SQL获取表中的所有 child

转载 作者:行者123 更新时间:2023-12-04 21:40:16 26 4
gpt4 key购买 nike

我有一个名为 tblmodules 的表,它有 3 列:moduleid、name、parent_id。列 parent_id 采用其他模块的值。例如:

Moduleid      Name       Parentid
-------- ----- --------
1 grandparent Null
2 parent 1
3 child 2
4 childofChild 3

如果我将祖 parent 作为参数提供给存储过程,我想构建一个存储过程来获取所有 child 。对于上面的例子,我不仅想要( parent ),而且我想要 child 和 child 的 child ,因为他们在祖 parent 之下。有什么帮助吗?

最佳答案

你需要一个 recursive CTE

CREATE PROC YourProc 
@ModuleId INT
AS
WITH R
AS (SELECT *
FROM YourTable
WHERE Moduleid = @ModuleId
UNION ALL
SELECT Y.*
FROM YourTable Y
JOIN R
ON R.Moduleid = Y.Parentid)
SELECT *
FROM R

SQL Fiddle

关于SQL获取表中的所有 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14409101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com