选择同一表关系中的所有父级或子级SQL Server

赫罗诺斯

SQL开发人员,我有一个计划不周的数据库作为任务,以学习有关SQL Server 2012的很多知识。

所以,有表Elem

+-----------+----+---+----------+------------+
|VERSION(PK)|NAME|KEY|PARENT_KEY|DIST_KEY(FK)|
+-----------+----+---+----------+------------+
|1          |a   |12 |NULL      |1           |
+-----------+----+---+----------+------------+
|2          |b   |13 |12        |1           |
+-----------+----+---+----------+------------+
|3          |c   |14 |13        |1           |
+-----------+----+---+----------+------------+
|4          |d   |15 |12        |1           |
+-----------+----+---+----------+------------+
|5          |e   |16 |NULL      |1           |
+-----------+----+---+----------+------------+
|6          |e   |17 |NULL      |2           |
+-----------+----+---+----------+------------+

更新该行后,我需要检查element的父键,以不允许element自self之类。

当我删除该行时,我需要删除所有孩子以及孩子的孩子,等等。

问题是:

  1. 如何选择DIST的一个元素的所有“父母+祖父母+等等”?

  2. 我如何选择DIST元素中的所有“儿子+孙子+等”?

我读到有关CTE的解决方案的信息,但是我没有任何基础,甚至不知道那时如何使用CTE。

请帮忙!

谢谢。

大块头

我遇到了这个问题,我通过这种方式解决了问题

 --all  "parent + grandparent + etc" @childID Replaced with the ID you need

with tbParent as
(
   select * from Elem where [KEY]=@childID
   union all
   select Elem.* from Elem  join tbParent  on Elem.[KEY]=tbParent.PARENT_KEY
)
 SELECT * FROM  tbParent
 --all "sons + grandsons + etc" @parentID Replaced with the ID you need

with tbsons as
(
  select * from Elem where [KEY]=@parentID
  union all
  select Elem.* from Elem  join tbsons  on Elem.PARENT_KEY=tbsons.[KEY]
)
SELECT * FROM tbsons

PS。我的英语不好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择同一表关系中的所有父级或子级SQL Server

来自分类Dev

在具有HierarchyID的SQL Server中选择父级和子级

来自分类Dev

在同一表格中显示子级和父级关系(如果有)

来自分类Dev

SQL Server在同一表上选择带有联接/子查询的查询以创建主字段值

来自分类Dev

SQL Server定义同一表之间的关系

来自分类Dev

如何在同一表SQL Server中的父子关系中映射(自动映射)

来自分类Dev

SQL查询以检索同一表中父级和子级关系中的数据。基本上是一个层次表

来自分类Dev

在多父级层次结构数据模型中查找两个节点之间的所有可能关系[SQL Server]

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

SQL Server-多个架构中的同一表

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

整理SQL Server中的表以去除NULL值并从同一级别开始

来自分类Dev

SQL Server:将行复制并插入到同一表中,但具有不同的ID

来自分类Dev

在SQL Server中查找具有条件的同一表上的值组合

来自分类Dev

SQL Server:将行复制并插入到同一表中,但具有不同的ID

来自分类Dev

如何在SQL Server查询中获取给定ID的所有子级

来自分类Dev

获取每个父级的子级数.SQL Server 2012

来自分类Dev

SQL Server:如何使用if else语句从同一表中选择不同的数据

来自分类Dev

SQL Server:选择并添加到同一表的新列

来自分类Dev

从许多具有相同结构的SQL Server数据库中的同一表中提取

来自分类Dev

SQL Server:更新同一个表中具有依赖关系的行

来自分类Dev

SQL Server:同一表,多个名称

来自分类Dev

在同一表中查询MS SQL Server中的数据库列表

来自分类Dev

SQL Server函数获取层次结构中的顶级父级

来自分类Dev

从父级删除时,SQL Server对所有子记录执行删除

来自分类Dev

选择不重复的行,其中列中的所有值均是同一SQL Server

来自分类Dev

SQL Server-从同一表中的数据更新列

来自分类Dev

SQL Server:将同一表中的记录彼此相对

来自分类Dev

在SQL Server中查找顶级父级的最有效方法?

Related 相关文章

  1. 1

    选择同一表关系中的所有父级或子级SQL Server

  2. 2

    在具有HierarchyID的SQL Server中选择父级和子级

  3. 3

    在同一表格中显示子级和父级关系(如果有)

  4. 4

    SQL Server在同一表上选择带有联接/子查询的查询以创建主字段值

  5. 5

    SQL Server定义同一表之间的关系

  6. 6

    如何在同一表SQL Server中的父子关系中映射(自动映射)

  7. 7

    SQL查询以检索同一表中父级和子级关系中的数据。基本上是一个层次表

  8. 8

    在多父级层次结构数据模型中查找两个节点之间的所有可能关系[SQL Server]

  9. 9

    比较SQL Server中同一表的列

  10. 10

    SQL Server-多个架构中的同一表

  11. 11

    比较SQL Server中同一表的列

  12. 12

    整理SQL Server中的表以去除NULL值并从同一级别开始

  13. 13

    SQL Server:将行复制并插入到同一表中,但具有不同的ID

  14. 14

    在SQL Server中查找具有条件的同一表上的值组合

  15. 15

    SQL Server:将行复制并插入到同一表中,但具有不同的ID

  16. 16

    如何在SQL Server查询中获取给定ID的所有子级

  17. 17

    获取每个父级的子级数.SQL Server 2012

  18. 18

    SQL Server:如何使用if else语句从同一表中选择不同的数据

  19. 19

    SQL Server:选择并添加到同一表的新列

  20. 20

    从许多具有相同结构的SQL Server数据库中的同一表中提取

  21. 21

    SQL Server:更新同一个表中具有依赖关系的行

  22. 22

    SQL Server:同一表,多个名称

  23. 23

    在同一表中查询MS SQL Server中的数据库列表

  24. 24

    SQL Server函数获取层次结构中的顶级父级

  25. 25

    从父级删除时,SQL Server对所有子记录执行删除

  26. 26

    选择不重复的行,其中列中的所有值均是同一SQL Server

  27. 27

    SQL Server-从同一表中的数据更新列

  28. 28

    SQL Server:将同一表中的记录彼此相对

  29. 29

    在SQL Server中查找顶级父级的最有效方法?

热门标签

归档