0

2つのクエリを実行する必要がある場合は、1行のクエリに置き換えたいと思いました。例:

select col1, col2 from tableA where col3 = 'a';

これにより、2行が返されます(考慮されます)。

col1    col2

abc     abc.bcd
xyz     xyz.pqr

次に、2番目のテーブルで、クエリ1の行ごとに異なるクエリを作成しました。

   select col1 from tableB where col2 = 'abc';
   (AND)
   select col1 from tableB where col2 = 'xyz';

これにより、次のような結果セットが得られます。

 TableB
 col1    
 1111    
 2222   

質問が不明確な場合は、親切に言及してください。より良い例で詳しく説明しようと思います。

(データベースベンダーは問題ではありませんが、私はoracleまたはmysqlに慣れています。ありがとうございます)。

4

5 に答える 5

1

基本的には、次のように2つのテーブルを結合する必要があります。

SELECT b.col1, a.col1
FROM tablea a 
INNER JOIN tableb b ON a.col1 = b.col2
WHERE a.col3 = 'a'
于 2012-11-20T12:26:15.487 に答える
0

私には完全にはわかりませんが、通常の結合式を探していると思いますか?

SELECT B.Col1、A.Col1 FROM TableA A.Col1=B.Col2の内部結合TableBB

結合式を参照してください。この例は、SQLServerおよび新しいバージョンのOracleを対象としています。

于 2012-11-20T12:27:32.547 に答える
0

次のような単一のクエリを作成できます。

select col1 from tableB where col2 = 'abc' or col2 = 'xyz';

また、チェックする文字列が多数ある場合は、次を使用できます。

select col1 from tableB where col2 in ('abc','xyz','mno');

更新:次のようなネストされたクエリを使用できます:

select col1 from tableB where col2 in (select col1 from tableA where col3='a');

ただしcol1、ネストされたクエリ内のデータ型と一致col2後のデータ型を確認してください。where

于 2012-11-20T12:22:33.450 に答える
0

これを試して:

select col1 
from tableB
where col2 in (select col1 
               from tableA 
               where col3='a')
于 2012-11-20T12:23:59.977 に答える
0

単一のクエリを次のように使用できます。

select col1, col2 from tableB where col2 = 'abc' or col2='xyz'
于 2012-11-20T12:25:12.260 に答える