0

私はそのような状況を持っています:

表 1: pk1 int、pk2 int、string1、string2、string3 表 2
: pk3 int、string4、string5、string6

最初のテーブルの pk2 int は、2 番目のテーブルの pk3 (インデックス) と同じです。テーブルを作成するとき、私は二次キーを使用していませんでした。可能であれば、これらの 2 つのテーブルを単一のクエリでクエリする必要があります。これまでは、次の 2 つのクエリでこれを行いました。

SELECT pk1, pk2, string1, string2, string3 
FROM table1 
WHERE string1 ILIKE 'a%'   

次に、結果をループします。

SELECT pk3, string4, string5, string6 
from table2 WHERE pk3=" & Cint(reader.GetValue(1))  

注: reader.GetValue(1) = 最初のテーブルの pk2)

最後に、次のような必要なローカル結果が得られます。

1、文字列 1、文字列 2、文字列 3、文字列 4、文字列 5、文字列 6

2 番目のクエリで ANY または IN を使用して少し単純化しましたが、PostgreSQL のような強力なデータ システムが 1 つのクエリでこれを実行できると信じています。

そのクエリは、示された例でどのように見えるべきですか?

4

2 に答える 2

2
SELECT t1.pk1, 
       t1.pk2, 
       t1.string1, 
       t1.string2, 
       t1.string3, 
       t2.string4, 
       t2.string5, 
       t2.string6
FROM table1 t1
  join table2 t2 on t1.pk2 = t2.pk3
WHERE t1.string1 ILIKE 'a%'   
于 2013-01-12T12:56:42.580 に答える
1

join句を使用して、2つのテーブルを結合し、結果を取得します。

于 2013-01-12T12:59:47.050 に答える