2015-03-21 4 views
1

Я хочу выбрать все записи, в которых поле содержит значения из другого поля. Как мне это сделать? Вот код, который я пытаюсь сделать.
Как использовать инструкцию LIKE с несколькими значениями из другого поля?

select field1 , field2, field3 
from table1 
where field1 like '%'+(select distinct field4 from table2)+'%' 


Спасибо заранее.

ответ

1

Просто сделайте ваше подобие как условие соединения:

select field1 , field2, field3 
from table1 
join (select distinct field4 from table2) x 
    on field1 like '%'+field4+'%' 
+0

Благодарим за помощь. – Brezhnews

0

Используя оригинальную структуру вашего запроса, вы можете сделать:

select field1, field2, field3 
from table1 t1 
where exists (select 1 
       from table2 
       where t1.field1 like '%' + field4 + '%' 
      ); 

Преимущество этого метода заключается в том, что он не будет дублировать записей в table1. Например, если есть две строки в table2 со значениями 'a' и 'b' соответственно и одна строка в table1 со значением 'ab', то этот метод будет только возвращать строку из таблицы1 один раз.

Смежные вопросы