我有一个结构(例如,在括号中 (id, parent_id) ):
- 目录 1 (1,0)
- 子目录 1 (44,1)
- 项目 1 (83,44)
- 项目 2 (98,44)
- 子目录 2 (46,1)
- 项目 1 (8,46)
- 项目 2 (9,46)
- 目录 2 (4,0)
- 子目录 1 (54,4)
- 项目 1 (43,54)
- 项目 2 (48,54)
- 子目录 2 (101,4)
- 项目 1 (19,101)
- 项目 2 (314,101)
在输入中我有 id 列表如果我没有 id 父目录,但我有子 id,那么我必须显示所有祖先:例如:输入:83、46、43、48 输出:
- 目录 1 (1,0)
- 子目录 1 (44,1)
- 项目 1 (83,44)
- 子目录 2 (46,1)
- 目录 2 (4,0)
- 子目录 1 (54,4)
- 项目 1 (43,54)
- 项目 2 (48,54)
我发明了请求:
SELECT *
FROM (SELECT distinct *
FROM Table a
START WITH N in (83, 46, 43, 48) CONNECT BY PRIOR N_PARENT = N) a
START WITH N_PARENT in 0 CONNECT BY PRIOR N = N_PARENT
ORDER SIBLINGS BY N
但在大数据方面是缓慢的。我可以提出要求 CONNECT BY
吗?