Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在oracle sql中从子级查找根父级_Oracle_Hierarchy_Connect By - Fatal编程技术网

在oracle sql中从子级查找根父级

在oracle sql中从子级查找根父级,oracle,hierarchy,connect-by,Oracle,Hierarchy,Connect By,我必须在我提供子级的层次结构中找到顶级父级。 当id=ref时,最顶端的父级将是 表示例: +--------------------+ | id parent_id ref | +--------------------+ | 1 1 1 | | 2 1 1 | | 3 2 1 | | 4 3 1 | | 5 4 2 | +-------------------

我必须在我提供子级的层次结构中找到顶级父级。 当id=ref时,最顶端的父级将是

表示例:

+--------------------+ | id parent_id ref | +--------------------+ | 1 1 1 | | 2 1 1 | | 3 2 1 | | 4 3 1 | | 5 4 2 | +--------------------+ +--------------------+ |id父项\u id参考| +--------------------+ | 1 1 1 | | 2 1 1 | | 3 2 1 | | 4 3 1 | | 5 4 2 | +--------------------+ 输入id 4时,我需要获取最顶层的父级(id 1)

我不能简单地从ref=id的表中选择* 由于同一表中可能存在其他层次结构,因此查询必须执行以下操作:

从id eg 4开始 如果不相等,则检查id\u parent=ref 然后使用父id作为新id 并检查它是否为id\u parent=ref 依此类推,直到parent_id=ref

此外,id 5属于不同的层次结构

非常感谢您的帮助 谢谢

“id 5属于不同的层次结构”这是否意味着该记录中的
ref 2
与您显示的
id 2
不同?这些层次结构是如何工作的?“id 5属于不同的层次结构”这是否意味着该记录中的
ref 2
与您显示的
id 2
不同?这些层次结构是如何工作的?