- 締切済み
SQLの抽出方法を可能か教えてください
初めましてm(__)m SQLを最近始めたばかりの為、次のような場合の抽出条件がわかりません。 どなたかご存知の方がいましたら、回答をよろしくお願いいたします。 次のようなDBがあったとします。 項目1 項目2 項目3 001 aaa 003 002 bbb 005 003 ccc 004 004 ddd 005 このDBに対し、検索条件を項目1=004とした場合に、次のように抽出したいのですが、どうすればよろしいですか? 001 aaa 003 003 ccc 004 004 ddd 005 ※項目1の値が項目3と一致したらそのデータも抽出し、更にそのデータの項目1の値が項目3と一致したらそのデータも抽出するみたいにしたいと考えているのですが可能でしょうか? 以上です。 分かる人がいましたら、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
#2さんの回答にあるように、再帰的に検索したいのでしょうか? 使用するRDBMSは、ここのカテゴリ通り、SQL Serverなのでしょうか? SQL Server 2005からなら、WITH文が使えるようになっており、再帰的な検索が可能になっています。
- kabilunlun
- ベストアンサー率34% (155/446)
やりたいことは、 1.検索条件:項目1=004で「004 ddd 005」を抽出。 2.項目3=004(上記で抽出したレコードの項目1)で「003 ccc 004」を抽出。 3.項目3=003(上記で抽出したレコードの項目1)で「001 aaa 003」を抽出。 上記1.~3.を結果として返す、ということですよね。 これは「再帰処理」というものなので、SQL一発では不可能かと思いますが。 レコード数が質問文の4つしかないなら話は別ですが。
お礼
ありがとうございます。 はい、そうです。 レコード数が4つとは決まっていません やはり、SQL一発では無理ですよね~
- m__m
- ベストアンサー率26% (9/34)
質問がわからないので答えられません。 よってSQLにもできません。 >このDBに対し、検索条件を項目1=004とした場合に 一致するのは 004 ddd 005 だけです。 >項目1の値が項目3と一致したらそのデータも抽出し、更にそのデータの項目1の値が項目3と一致したらそのデータも抽出するみたいにしたいと考えているのですが可能でしょうか? よーく よんでください。 ”項目1の値が項目3と一致したらそのデータも抽出し” さらに ”項目1の値が項目3と一致したらそのデータも抽出” 同じことを 2回したいのでしょうか? 多分 なにか 間違えてかいていませんか? おもしろい なぞなぞみたいですよ。
お礼
回答ありがとうございます。 うまく伝わらなかったみたいですねm(__)m やりたいことは、kabilunlunさんの回答に書かれていることです。 しかし、kabilunlunさんの回答のように一回のSQLでは無理そうですね
お礼
早い回答、参考URL、ありがとうございます。 正直、SQLはまだ始めたばかりなので、URLをみてもピンとこないのですが、勉強してみます。