gpt4 book ai didi

sql-server - 如何从子ID中选择父ID

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

我有一个表名 factors .它包含这样的数据:

id      Name         paretnID
1 abc 0
2 xyz 0
3 abc1 1
4 abc2 1
5 abc3 1
6 qwe 0
7 xyz1 2
8 xyz2 2

我有一组这样的 ID: (1,4,7,8)
我想显示所有的父和子 ID。
像这样
id      name       parentID
1 abc 0
2 xyz 0
4 abc2 1
7 xyz1 2
8 xyz2 2

在我的 ID 列表中 2不存在,但 ID 27 的父级和 8所以它显示在结果集中。

如何编写查询以显示上述结果?

最佳答案

Declare @a table (id  int ,    Name  Varchar(100) ,      parentID int)
Insert into @a
Select 1,'abc',0
UNION Select 2,'xyz',0
UNION Select 3,'abc1',1
UNION Select 4,'abc2',1
UNION Select 5,'abc3',1
UNION Select 6,'qwe',0
UNION Select 7,'xyz1',2
UNION Select 8,'xyz2',2


;WITH Rollups AS (
SELECT Id, ParentId,Name
FROM @a Child WHERE ID in (1,4,7,8)
UNION ALL
SELECT cl.Id, cl.ParentId, cl.Name
FROM @a cl
INNER JOIN Rollups Children ON Children.ParentID = cl.Id
)
SELECT DISTINCT *
FROM Rollups
Order by ID

关于sql-server - 如何从子ID中选择父ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402051/

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