OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

SQLでの絞り込み検索

  • すぐに回答を!
  • 質問No.122082
  • 閲覧数1294
  • ありがとう数6
  • 気になる数0
  • 回答数4
  • コメント数0

はじめて参加します。
SQL初心者の古屋と申します。

絞り込み検索をしたいのですが、先に進まず困っています。
どうぞアドバイスをよろしくお願いします。

あるテーブルから1回目の検索条件でヒットしたものを表示させる。
次に、その中から2回目の検索条件を入力して、結果を表示させる。

(ポイントは、一度検索した結果を出してから、次の検索条件を入力させたい)

この絞り込みを何回でもやりたいのです。

一時テーブルも試したのですが、検索する回数分一時テーブルが必要になるのではだめだと思い、
断念しました。

テーブル値関数を使ったら良さそうだと思ったのですが、能力不足のため先に進まず困っています。

どうかアドバイスをよろしくお願いします。

環境は、Windows 2000 Serverで、SQL Server 2000を使用しています。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル11

ベストアンサー率 29% (74/253)

No.2の返答についてのコメントです。

>本当にド素人の質問で申し訳ないのですが、一般的なWebの絞り込み検索って、
>(絞り込み検索に限らず、検索について)
>SQLでストアドプロシージャとかを作って実行させるのではなく、Webで表示
>させるほうのアプリケーションで 書くものなのでしょうか?

作りたいのはWebアプリケーションですか。
ということは、SQLの検索結果をWebに表示する仕組みが必要ですので、
やはり別の言語(ASPとかPHPとかJava)が必要でしょう。

検索結果をWebに出力して、その結果をユーザがまた検索できるようにする
プログラムを別言語で開発することになるのでしょうか。
お礼コメント
noname#2461

cse_riさん、回答ありがとうございます。

WEBアプリケーションの方で、AND検索を使うことによって、絞り込み検索は実現したようです。

私のイメージでは、SQLの方でストアドプロシージャなどを使って検索を実行させ、受け取った結果をWEBで表示させるものだと思っていたのですが、
WEBアプリケーションの方で、検索させる方が一般的なのですね。

>やはり別の言語(ASPとかPHPとかJava)が必要でしょう。

そういう知識がないと、SQLだけ勉強していてもあまり使えないということなのでしょうか。
へこんできたけど、頑張ります。

SQLのメーリングリストにも投げていたのですが、ここまで答えて下さる方はいませんでした。
丁寧で、とても親切な回答をありがとうございました。
投稿日時 - 2001-08-23 09:08:24
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 29% (74/253)

検索結果をベースに別の検索をしたいということですね。 SQLの副問い合わせを活用すればできそうです。 例えば、 |select deptno, empno, ename | from emp | where deptno in (select deptno from dept where deptno=10); というSQL文は、カッコ内の検索結果を元にして、元のSQL文の検索条 ...続きを読む
検索結果をベースに別の検索をしたいということですね。
SQLの副問い合わせを活用すればできそうです。

例えば、

|select deptno, empno, ename
| from emp
| where deptno in (select deptno from dept where deptno=10);

というSQL文は、カッコ内の検索結果を元にして、元のSQL文の検索条件を
設定しています。

上記のSQL文はOracleで試しましたが、基本的な構文ですので
MS-SQLServerでも実行可能かと思います。変更が入るにしても
大きくは変わらないと思います。


#PS
#私だったら、SQL Onlyではなく4GL(PowerBuilderが得意)を
#組み合わせて、実現する内容ですね。
お礼コメント
noname#2461

即レス本当にありがとうございます。

テーブル自体は1つしかないのですが、そういう場合でも副問い合せってできるのでしょうか。

補足で回答いただいているように、一回目の検索結果を一度表示させたいと考えています。

本当に知識不足で申し訳ないのですが、4GL(PowerBuilderが得意)って初めて知りました。
どういうものなのか調べてみます。
投稿日時 - 2001-08-22 08:37:42


  • 回答No.2
レベル11

ベストアンサー率 29% (74/253)

追加のコメントです。 >あるテーブルから1回目の検索条件でヒットしたものを表示させる。 >次に、その中から2回目の検索条件を入力して、結果を表示させる。 結果を1回表示したいということですか。 SQLの副問い合わせでは中間の結果が表示されないからNGですね。 やはりSQL単独で実現させるより、別の言語の力が必要では ないかと思います。(VBでもJavaでも何でもいいですが) ...続きを読む
追加のコメントです。

>あるテーブルから1回目の検索条件でヒットしたものを表示させる。
>次に、その中から2回目の検索条件を入力して、結果を表示させる。

結果を1回表示したいということですか。
SQLの副問い合わせでは中間の結果が表示されないからNGですね。

やはりSQL単独で実現させるより、別の言語の力が必要では
ないかと思います。(VBでもJavaでも何でもいいですが)
お礼コメント
noname#2461

>やはりSQL単独で実現させるより、別の言語の力が必要では
>ないかと思います。(VBでもJavaでも何でもいいですが)

やっぱりそういうことになりますか。

本当にド素人の質問で申し訳ないのですが、一般的なWebの絞り込み検索って、(絞り込み検索に限らず、検索について)
SQLでストアドプロシージャとかを作って実行させるのではなく、Webで表示させるほうのアプリケーションで
書くものなのでしょうか?

言っていることが合っているのかどうかさえ怪しいのですが、教えていただけると嬉しいです。
投稿日時 - 2001-08-22 08:48:44
  • 回答No.3
レベル9

ベストアンサー率 32% (34/105)

対話式に検索するのであれば、cse_riさんのおっ しゃる通り、SQLというより4GLなどのツールで 解決する問題だと思います。   本題からは外れるかもしれませんが、もしSQLで やろうとすれば、下記のようなクエリーで1回目の 検索結果と、2回目の検索結果を同時に出力する事 はできます。 |select deptno, '---' "empno" ...続きを読む
対話式に検索するのであれば、cse_riさんのおっ
しゃる通り、SQLというより4GLなどのツールで
解決する問題だと思います。
 
本題からは外れるかもしれませんが、もしSQLで
やろうとすれば、下記のようなクエリーで1回目の
検索結果と、2回目の検索結果を同時に出力する事
はできます。

|select deptno, '---' "empno", '---' "ename"
| from dept where deptno=10
|union
|select deptno, empno, ename
| from emp
| where deptno in (select deptno from dept where deptno=10);
|order by deptno,empno,ename;
 
ちなみに上記はOracle-SQLですが、SQL-Serverでも
UNIONは使えるでしょう。
かなり邪道ですかね(笑)
 
ポイントは、UNION。
1つめのクエリーでは、親の問い合わせのみを記述し、
2つめのクエリーでは、親の問い合わせを副問い合わせに
もつ問い合わせを書く、という点です。
UNIONなので、基本的に列の名前なんかは合わせておく
必要があります。
 
ご参考までに。
お礼コメント
noname#2461

アドバイスありがとうございます。

>対話式に検索するのであれば、cse_riさんのおっ
>しゃる通り、SQLというより4GLなどのツールで
>解決する問題だと思います。

4GLについて調べてみたいと思います。
親テーブルとか子テーブルとかはなく、1つのテーブルから検索をかけたいと思っています。

1回目
select *
from emp
where empno=123
これを表示させる

2回目
select *
from emp
where empno=123 and name='John'
これを表示させる

どんどんANDでつなげていけばいいのでしょうが、
前回の検索条件を記憶させておいて、次の検索に受け渡すには、どのようにしたらいいのでしょうか。
変数を使うのでしょうか。
投稿日時 - 2001-08-22 08:58:48
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ