- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OracleのSQLでツリー表示取得)
OracleのSQLでツリー表示取得
このQ&Aのポイント
- OracleのSQLを使用してツリー表示を取得する方法について質問です。
- プロジェクトから離れた方が書いたSQLを修正したものを使用していますが、値が取れない問題が発生しています。
- テーブルには4つのレコードが格納されており、keyIDは全レコードで同じ値です。どこが間違っているか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずCONNECTは CONNECT BY PRIOR 親行の項目 = 子行の項目 です。 なので、記述されたSQLでは、 START WITH PARENT_ID=0により、まず(2,'A',0)、(3,'B',0)が選択され、次に親行である(2,'A',0)のPARENT_ID(0)から子行としてID=0の(0,'親',NULL)が選択され、その次に親行である(3,'B',0)のPARENT_ID(0)から子行としてID=0の(0,'親',NULL)が選択され、以上の結果がORDER BYされて「とってきた値」という結果になります。 「とりたい値」から思うに START WITH ID = 0 CONNECT BY PRIOR ID = PARENT_ID でしょう。(もしくは START WITH PARENT_ID IS NULL) たぶん(^^;
お礼
レスありがとうございます。 質問を書いた後にもいろいろ試してみてFlossenEngelさんのおっしゃるとおりの形となりました^; 自己解決でレスが書きたくても書けない仕様なので、すぐにお礼が言えず申し訳ありませんでした。