• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:再帰的にデータを取得する方法について)

再帰的にデータを取得する方法について

このQ&Aのポイント
  • 再帰的にデータを取得する方法について質問します。特定の親階層までの関連データを1度のSQLで取得できるのか、パフォーマンス的に効果的な方法はあるのかを教えてください。
  • 以下のようなTABLE1とTABLE2があった場合に、親階層が2つまで等分かれている場合のデータ取得について詳しく教えてください。
  • データベースの再帰的なデータ取得において、1度のSQLで必要な情報を取得する方法と、親階層を分割して複数のSQLで取得する方法の違いについて教えてください。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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にもインデックスを張ってください。

k_mukitaro
質問者

お礼

jamshid6さん 無事に取得する事が出来ました。 パフォーマンス的にも1度で取得した方が良いのですね。 いろいろと勉強になりました。 ご回答ありがとうございましたっ!

関連するQ&A