当前位置: 首页 > 面试题库 >

在层次结构表中获取孩子的根父级

曾嘉瑞
2023-03-14
问题内容

我有一个带有分层数据的表,其结构如下所示:

ID      ParentId
----   ----------
1       NULL
2       1
3       2
4       2
5       3
6       5

如果我传递节点ID,则希望通过在SQL中遍历其所有父节点来获得最高的节点ID /细节。

我尝试过CTE,但我无法以某种方式获得正确的组合。但是,我将此功能用作函数,但是它太慢了,以至于我不得不发布这个问题。

在上面的示例中,如果我通过6,则我想拥有最高的即1。通过遍历6 => 5 => 3 => 2 => [1](结果)

在此先感谢您的帮助。


问题答案:

请试试:

declare @id int=6
;WITH parent AS
(
    SELECT id, parentId  from tbl WHERE id = @id
    UNION ALL 
    SELECT t.id, t.parentId FROM parent
    INNER JOIN tbl t ON t.id =  parent.parentid
)

SELECT TOP 1 id FROM  parent
order by id asc


 类似资料:
  • 如果我有这样一门课: 获取节点的所有父层次结构的最简单/最优雅的方法是什么? 类似于:

  • 问题内容: 假设您有下表: …这是一个自引用表-指。 您将使用什么SQL查询来选择表中的所有项目以及它们的深度,其中项目的深度是该项目的所有父项和祖父母的总和。 该表的内容是否如下: …查询应检索以下对象集: {“ item_id”:1,“ depth”:0} {“ item_id”:2,“ depth”:0} {“ item_id”:3,“ depth”:1} {“ item_id”:4,“ d

  • 问题内容: 我有课: 然后创建对象: 尝试获取所有字段后,我打电话 但是我只有一个数组 如何从所有类的所有字段包括扩展? 问题答案: 请尝试以下操作:

  • 问题内容: 我正在尝试查找指定目录下的所有文件和文件夹 例如我有/ home / user / stuff 我想回来 希望这是有道理的! 问题答案:

  • 我试图在父组件中显示子组件的状态,但不知何故,文本“abcde”仍然没有显示,这是示例代码 但不知怎么的,屏幕仍然是空的,“abcde”直到我点击两次,来自功能组件,所以我不知道发生了什么,请帮助,非常感谢

  • 到目前为止,我们一直在使用Spring JpaRepository来满足我们的需求。我觉得这个新需求需要自定义查询,我不认为可以直接使用JParepository来处理这个问题。我只想知道你是怎么想的。不需要自定义sql查询就可以做到这一点吗?