私はOracleで階層データを取得するためにstart with節を使用しようとしています。 、 IDSTART WITHはOracle SQLの存在条件を使用しています
テーブルB(スキーマ)(350億行)の費用:
TableAの(スキーマ)(6万行):私は、以下の2つのテーブルを持っている IDを、私たちは行きたい
をPARENT_ID表Aから、idに再帰的に関連するすべてのparent_idsを取得します。以下のクエリのような何か:
Select * from TableB START WITH id in (select id from TableA)
connect by id = prior parent_id and parent_id != id
上記1がテーブルAの行の数が少ないために動作しますが、私はテーブルA 6万行を持っており、テーブルBは350億行を有する場合、これをやろうとしています。
この場合、階層データを取得するにはどのような推奨方法がありますか(exists句のようなもの)? 'between'を試しても、必要ではないたくさんのIDが生成されます。
何か助けてください。
TableAの条件はどのようなものになるのですか? –