2017-09-14 6 views
1

하위 쿼리의 결과를 포함하는 모든 사용자 이름을 찾는 쿼리를 만들려고합니다. 나는 다음과 같은 몇 가지 의사 코드를 작성했습니다 :필터링 테이블 subquery 결과와 같은 필드

select <field1> 
from <table1> 
where <field> like 
    (select <field2> from <table2>) 
나는 기본적으로 내 쿼리 비교와 끝까지 할

:

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

이 가능합니까?

+0

테이블을 '결합'하고 '유사'조건을 지정할 수 있습니다. –

+0

글쎄, 당신은'에서'% '|| table2.field2 ||'% '를 선택하여''과 같은' '을 쓸 수 있습니다. 그러면 Gordon의'exists'와 비슷한 설명이됩니다. 다행히 테이블 중 적어도 하나가 작기 때문에 결과 * 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