|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
| [4370] サブクエリを使わないでデータを抽出 |
| 投稿者:Ryoさん 2004/06/16 11:34:20 |
| こんにちは。お聞きしたいことがあるのですが。 サブクエリを使わずに該当データを抽出する方法で悩んでいます。 (使用DBがMySQLなのでサブクエリが使えないのです。) まずテーブル1から該当するデータを数件抽出します。 次に、テーブル2からテーブル1で抽出したデータ数件に該当するデータを 抽出します。 わかりやすく例を用いると、 たとえば、テーブル1から氏名を抽出。 氏名がAさん、Bさん、Cさん、Dさんが出たとします。 次にテーブル2で氏名がAさん、Bさん、Cさん、Dさんであるもの(データ) を抽出します。 これをSQLでどうやって書けばいいのか・・ で、考えたのですが、要するに StrSQL="select * from テーブル2 where 氏名 in (A,B,C,D) というふうにin演算子を用いて、氏名がAまたはBまたはCまたはDのものを 抽出するというふうにしようかと考えました。 そこで、まずテーブル1で抽出したデータを配列に入れてSQL文を走らせようと したのですが、その記述方法がエラーが出てわかりません。 ソースを一部書きます。 dim Hairetu() '配列を作る Redim Preserve Hairetu(0) Do while ObjRS("氏名").EOF = False '抽出されたデータ数分ループさせる name = ObjRS("氏名") Redim preserve Hairetu(Ubound(Hairetu)+1) Hairetu(i) = name '配列に入れていく ObjRS.MoveNext i = i+1 Loop これでHairetu(0)=A、Hairetu(1)=B・・・という風にデータが入ってるはずなのですが・・ その後がわかりません。 StrSQL = "select * from テーブル2 where 氏名 in " StrSQL = StrSQL & "(" &Hairetu(0) & "," & Hairetu(1) & ・・・")" という文を作りたいのですが、 Forでループさせようと思って StrSQL ="select * from テーブル2 where 氏名 in (" StrSQL =StrSQL & For i=0 to Ubound(Hairetu) Hairetu(i)& i=i+1 Next &")" とすると文法がおかしいとエラーが出ます。 ここの記述方法を教えていただきたいのです。 in の中をForで配列をループする記述方法をどなたか教えてください。 お願いします。 |
![]()
サブクエリを使わないでデータを抽出
Ryoさん
[2004/06/16 11:34:20]
[4370]
|
Re:サブクエリを使わないでデータを抽出
YasNet(管理人)さん
[2004/06/16 12:16:33]
[4371]
Re:サブクエリを使わないでデータを抽出
Ryoさん
[2004/06/16 13:08:38]
[4373]
Re:サブクエリを使わないでデータを抽出
YasNet(管理人)さん
[2004/06/16 13:25:32]
[4374]
Re:サブクエリを使わないでデータを抽出
Ryoさん
[2004/06/16 14:52:11]
[4375]
Re:サブクエリを使わないでデータを抽出
通りすがりさん
[2004/06/17 15:06:28]
[4385]
|
|
TreeBBS For ASP V.0.1.3 |