我有一个关于Oracle分层查询的问题。
假设我有一个单位关系表,其中unit1是父级,unit2是子级。
ID UNIT1 UNIT2 OTHER COLUMNS
------大量数据--------
假设我正在查看一个单位,现在我想要关于它与其他单位之间关系的完整图/树。
很容易只获取相互连接的父级和子级:
这是向上移动,类似的操作用于向下移动。现在的情况是,例如向上移动 1 步时,它不会搜索该单元的子单元,而只会继续搜索父级。因此,如果父单元有另一个子单元(不是我们正在寻找的那个),我将无法到达它,因为语法只会继续查找父级。之后,它只会寻找子级,而不是这两个的结合体。
有没有办法可以针对每个子或父单元同时搜索父级和子级?
假设我有一个单位关系表,其中unit1是父级,unit2是子级。
ID UNIT1 UNIT2 OTHER COLUMNS
------大量数据--------
假设我正在查看一个单位,现在我想要关于它与其他单位之间关系的完整图/树。
很容易只获取相互连接的父级和子级:
INSERT INTO search_table
SELECT id
FROM mytable
START WITH unit_id1 = 12 (or any random unit id)
CONNECT BY nocycle PRIOR unit_id2 = unit_id1
GROUP BY id;
这是向上移动,类似的操作用于向下移动。现在的情况是,例如向上移动 1 步时,它不会搜索该单元的子单元,而只会继续搜索父级。因此,如果父单元有另一个子单元(不是我们正在寻找的那个),我将无法到达它,因为语法只会继续查找父级。之后,它只会寻找子级,而不是这两个的结合体。
有没有办法可以针对每个子或父单元同时搜索父级和子级?
CONNECT_BY_ROOT
吗? - Tebbe