• 締切済み

親の親の・・・を抽出するSQL文

以下の動作を行うのをSQLのみ(PL/SQL等不可)で 行いたいですが方法が分かりませんので教えて下さい。 親の親の・・・を取得するSQL [例] 項目1(子)  項目2(親) X1 Y1 A10 B10 B10 C20 C20 D30 ----------------------- 上記の場合において、子から親をループさせながら取得します。 X1の結果はY1 A1、B10、C20の結果は全てD30が返されるようにしたいです。

みんなの回答

回答No.3

>SQLのみ(PL/SQL等不可) RDBMSは、このカテゴリ通りMySQLなのでしょうか? バージョンは?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

あっと・・・文中inner joinと書きましたが SQLにあるようにleft joinでした

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ぱっとおもいつき・・・ もしさかのぼる数に上限つけていいなら単純にさかのぼりたいだけ inner joinするというやり方も。 テーブル名を仮にhogeとしたとき5段階さかのぼってみると select h1.X1,coalesce(h5.Y1,h4.Y1,h3.Y1,h2.Y1,h1.Y1) as Y1 from hoge as h1 left join hoge as h2 on h1.Y1=h2.X1 left join hoge as h3 on h2.Y1=h3.X1 left join hoge as h4 on h3.Y1=h4.X1 left join hoge as h5 on h4.Y1=h5.X1 みたいな感じでできそうです。

関連するQ&A