• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OracleのSQLでツリー表示取得)

OracleのSQLでツリー表示取得

このQ&Aのポイント
  • OracleのSQLを使用してツリー表示を取得する方法について質問です。
  • プロジェクトから離れた方が書いたSQLを修正したものを使用していますが、値が取れない問題が発生しています。
  • テーブルには4つのレコードが格納されており、keyIDは全レコードで同じ値です。どこが間違っているか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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) たぶん(^^;

utatane
質問者

お礼

レスありがとうございます。 質問を書いた後にもいろいろ試してみてFlossenEngelさんのおっしゃるとおりの形となりました^; 自己解決でレスが書きたくても書けない仕様なので、すぐにお礼が言えず申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう