2016-10-17 3 views
0

Мне нужно проверить правильность поля, присутствующего в одной таблице, с полями, присутствующими в другой таблице. У меня есть таблица с Check_Field, присутствующая в (Main table), и этот Check_Field должен быть проверен как комбинация двух других полей, присутствующих в другой таблице (Таблица 2).Как проверить столбец таблицы с комбинацией других столбцов другой таблицы?

Главная Таблица

Check_Field 
------------- 

Field_1%Field_2% 

Таблица 2

Field_1  Field_2 
---------------------- 

ABC   XYZ   

В (Главный стол) я должен проверить для поля (Check_Field), который содержит значение Field_1 из таблицы 2 за которым следует набор предопределенных символов, за которым снова следует значение Field_2 из таблицы 2 и еще один набор предопределенных символов.

+0

Вы можете уточнить «предопределенный характер» часть? Из поля «Field_1% Field_2%» я думал, что вы имели в виду, что между Field1 и Field2 вы можете иметь любую строку («%» - это шаблон для LIKE в SQL), но теперь я не уверен в этом. – Insac

+0

У меня разные ситуации. В одном варианте для% я должен использовать цифры, а в другом сценарии я должен использовать 2 символа. –

+0

Пытался изменить свой предыдущий ответ с помощью дополнительной информации. Если это не сработает для вас, добавьте к нему комментарий; так что для нас будет яснее то, чего вы пытаетесь достичь. – Insac

ответ

0

Что-то вроде:

SELECT * FROM MAIN_TABLE M 
    WHERE EXISTS (
      SELECT 1 
       FROM TABLE2 C 
      WHERE M.CHECK_FIELD LIKE C.FIELD1¦¦'%'¦¦C.FIELD2¦¦'%' 
     ) 

Если вы должны проверить строку с определенными дополнительными символами, вы может удалить LIKE и вставить ваши символы в запрос.

Если, например, вам нужно проверить на модели, как «(field1) XX (field2) ZZ» запрос будет:

SELECT * FROM MAIN_TABLE M 
     WHERE EXISTS (
       SELECT 1 
        FROM TABLE2 C 
       WHERE M.CHECK_FIELD = C.FIELD1¦¦'XX'¦¦C.FIELD2¦¦'ZZ' 
      ) 
0

Вы можете это сделать.

Тип:

select * 
    from main_table 
    where check_field in (
    select field_1 from table2 
) 

Это возвратит значение, если присутствует в таблице 2.

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