oracle 在N层有一个节点

k5hmc34c  于 2023-02-03  发布在  Oracle
关注(0)|答案(1)|浏览(98)

我想写的代码有一个节点在N级(例如3)的树,找到所有成员到M级(例如6)。我怎么写这个代码?什么是这个问题的最佳想法?我是新的甲骨文,请解释我,并帮助我解决这个问题。

ntjbwcob

ntjbwcob1#

CREATE TABLE tree (
    node_id     INT,
    parent_id   INT
)
INSERT INTO
  tree
          SELECT    1, NULL FROM DUAL
UNION ALL SELECT    2,    1 FROM DUAL
UNION ALL SELECT    3,    1 FROM DUAL
UNION ALL SELECT    4,    2 FROM DUAL
UNION ALL SELECT    5,    2 FROM DUAL
UNION ALL SELECT    6,    3 FROM DUAL
UNION ALL SELECT    7,    3 FROM DUAL
UNION ALL SELECT    8,    4 FROM DUAL
UNION ALL SELECT    9,    4 FROM DUAL
UNION ALL SELECT   10,    5 FROM DUAL
UNION ALL SELECT   11,    5 FROM DUAL
UNION ALL SELECT   12,    6 FROM DUAL
UNION ALL SELECT   13,    6 FROM DUAL
UNION ALL SELECT   14,    7 FROM DUAL
UNION ALL SELECT   15,    7 FROM DUAL
15 rows affected
SELECT
  node_id, parent_id, level
FROM
  tree
WHERE
  level < 3
CONNECT BY
  PRIOR node_id = parent_id
START WITH
  parent_id = 3
ORDER BY
  level, node_id

| 节点ID|母体ID|水平|
| - ------|- ------|- ------|
| 六个|三个|1个|
| 七|三个|1个|
| 十二|六个|第二章|
| 十三|六个|第二章|
| 十四|七|第二章|
| 十五|七|第二章|
fiddle

相关问题