- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:再帰的にデータを取得する方法について)
再帰的にデータを取得する方法について
このQ&Aのポイント
- 再帰的にデータを取得する方法について質問します。特定の親階層までの関連データを1度のSQLで取得できるのか、パフォーマンス的に効果的な方法はあるのかを教えてください。
- 以下のようなTABLE1とTABLE2があった場合に、親階層が2つまで等分かれている場合のデータ取得について詳しく教えてください。
- データベースの再帰的なデータ取得において、1度のSQLで必要な情報を取得する方法と、親階層を分割して複数のSQLで取得する方法の違いについて教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
取得できるかといえば、以下のようなクエリで可能です。 SELECT a.ID ID, a.AID AID, a.JOB JOB, b1.PID AID_PID_1, b2.NAME AID_NAME_1, b2.PID AID_PID_2, b3.NAME AID_NAME_2 FROM TABLE1 a INNER JOIN TABLE2 b1 ON b1.ID=a.AID INNER JOIN TABLE2 b2 ON b2.ID=b1.PID INNER JOIN TABLE2 b3 ON b3.ID=b2.PID 複数回クエリを実行するオーバーヘッドの方が高いと思います。 一発で取ってかまわないでしょう。 気になるならTABLE2のPIDにもインデックスを張ってください。
お礼
jamshid6さん 無事に取得する事が出来ました。 パフォーマンス的にも1度で取得した方が良いのですね。 いろいろと勉強になりました。 ご回答ありがとうございましたっ!