SQL SELECT文で2つのテーブルから取得すると遅い
- 題名: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: ポン
- 日時: 2004/03/19 5:24:21
- ID: 3163
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: ポン
- 日時: 2004/03/19 5:48:19
- ID: 3164
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: 琴
- 日時: 2004/03/19 9:20:22
- ID: 3167
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: Tom's
- 日時: 2004/03/19 10:06:31
- ID: 3168
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: ポン
- 日時: 2004/03/20 1:56:16
- ID: 3183
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: SQL SELECT文で2つのテーブルから取得すると遅い
- 著者: ポン
- 日時: 2004/03/20 17:06:20
- ID: 3193
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
どなたか、SQLについて詳しい方がいらっしゃいましたらご教授してくださりませんでしょうか。
環境は、WindowsXP + VB.NET です。SQLについては初心者です。
以下のような2つのテーブルを持つMDBファイルから、2つのテーブルからまとめて1回で
siiresaki と seihin の2つを指定して日付順に nyuuko と furyou を並べてデータを取得しようと思い、
いろいろ調べて素人なりに、SELECT文を書いて何とか取得できるようになったのですがみたのですが、
ものすごく遅です。(10秒以上)
もし、効率のよいSQL文の書き方がありましたら教えて頂きたいのですが。
それとも、このようなケースでは1つのテーブルから、Table1とTable2から1回づつ2回に分けて取得して
からVBのコードでつなぎ合わせるのが正道なのでしょうか?この方法だと1秒もかからないです。
何卒よろしくお願いいたします。
[MDBのデータベース]
Table1(仕入)
hiduke |siiresaki |seihin |nyuuko | tanka ...
---------------------------------------
04/01/05 | 001 | A01 | 100
04/01/05 | 001 | B01 | 150
04/01/05 | 002 | A01 | 200
04/01/07 | 001 | A01 | 330
04/01/07 | 002 | B01 | 250
04/01/09 | 001 | A01 | 120
Table2(不良品)
hiduke |siiresaki |seihin |furyou|
-----------------------------------------------
04/01/05 | 001 | A01 | 5
04/01/05 | 001 | B01 | 12
04/01/05 | 002 | A01 | 18
04/01/07 | 001 | A01 | 21
04/01/07 | 002 | B01 | 10
04/01/09 | 001 | A01 | 6
[SQL問い合わせ結果]
siiresaki =001 で seihin = A01
hiduke |nyuuko |furyou |
----------------------------
04/01/05 | 100 | 5
04/01/05 | 330 | 18
04/01/05 | 120 | 6
[私の書いたSQL文]
SQLSTR = "SELECT T1.hiduke, T1.nyuuko, T2.furyou FROM 仕入 T1 , 不良品 T2 "
SQLSTR += "WHERE T1.hiduke = T2.hiduke AND T1.siiresaki = T2.siiresaki AND T1.seihin = T2.seihin "
SQLSTR += "AND T1.siiresaki = 100 AND T1.seihin = 'A01' "
SQLSTR += "ORDER BY T1.hiduke"