我最近偶然发现一个问题,从一个表中选择关系详细信息并插入到另一个表中,我希望有人可以提供帮助。
我有一个表结构如下:
ID (PK) Name ParentID<br>
1 Myname 0<br>
2 nametwo 1<br>
3 namethree 2
e.g
这是我需要从中选择并获取所有关系数据的表。因为子链接的数量可能是无限的(我可以为此创建一个函数来创建循环吗?)
然后,一旦我拥有了需要插入到另一个表中的所有数据,并且 ID 现在必须更改,因为 id 必须按顺序排列(例如,我不能让 id“2”成为 3 的子集),我希望我可以使用相同的功能来选择进行插入。
如果您使用的是 SQL Server 2005 或更高版本,您可以使用递归查询来获取您的信息。这是一个例子:
With tree (id, Name, ParentID, [level])
As (
Select id, Name, ParentID, 1
From [myTable]
Where ParentID = 0
Union All
Select child.id
,child.Name
,child.ParentID
,parent.[level] + 1 As [level]
From [myTable] As [child]
Inner Join [tree] As [parent]
On [child].ParentID = [parent].id)
Select * From [tree];
此查询将递归返回第一部分(其中 ParentID = 0)请求的行和所有子行。这对你有帮助吗?
我不确定我是否理解您希望插入内容发生什么。您能否提供更多有关完成后预期结果的信息?
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)