2017-09-14 6 views
1

サブクエリの結果を含むすべてのユーザー名を検索するクエリを作成しようとしています。私は以下のいくつかの擬似コードを書いている:サブテーブルの結果のようなフィールド

select <field1> 
from <table1> 
where <field> like 
    (select <field2> from <table2>) 
私は基本的に私のクエリは比較で終わるしたい

table1.field1 like '%' || table2.field2 || '%' 

これは可能ですか?

+0

テーブルを 'join 'して' like'条件を指定することができます。 –

+0

さて、あなたは 'のように' から '% '|| table2.field2 ||'% 'を選択して'のように 'と書くことができます。これはGordonの' exists'に似たExplainになります。うまくいけば、テーブルの少なくとも1つは小さく、そうでなければ結果として得られる* Product Join *は非常に非効率的です。 – dnoeth

+0

SQLワールドテーブルに_fields_ではなく_columns_があります。 – jarlh

答えて

2

使用exists

select <field1> 
from <table1> t1 
where exists (select <field2> 
       from <table2> t2 
       where t1.field1 like '%' || t2.field2 || '%' 
      ); 

あなたはおそらくもjoinでこれを行うことができますが、あなたはその後、重複を削除する必要があります。

+0

魅力的な仕事をしてくれてありがとう! – Nic2352

関連する問題