【发布时间】:2017-09-24 02:13:53
【问题描述】:
我正在尝试使用 start with 子句在 Oracle 中获取分层数据。我有以下两个表:
TableA(模式)(600 万行): 身份证,费用
TableB(模式)(350 亿行): id, parent_id
我们想从表 A 中递归地获取所有与 id 关联的 parent_id。类似于下面的查询:
Select * from TableB START WITH id in ( select id from TableA )
connect by id = prior parent_id and parent_id != id
虽然上述方法适用于 TableA 的少量行,但我正在尝试在 TableA 有 600 万行而 TableB 有 350 亿行的情况下执行此操作。
在这种情况下获取分层数据的推荐方法是什么(例如存在子句)?尝试 'between' 也会产生很多不需要的 id ..
非常感谢任何帮助。
【问题讨论】:
-
TableA 的条件是什么?!