2017-02-15 2 views
-1

У меня есть 2 таблицы, TABLE1 и TABLE2, и я хотел бы показать результат поиска, где я буду проверять, если в TABLE1 столбец с именем name содержит xyz, и после него следует сравнить с TABLE2AUDITED_ID и отобразите поле с поля TABLE2, где поле TABLE2AUDITED_ID будет равно полю поля таблицы 1, в котором поле идентификатора TABLE1 также будет содержать столбец имен и оно должно содержать xyz.сравнение столбца 2 таблицы

Query1:

SELECT ID FROM TABLE1 
UNION 
SELECT AUDITED_ID FROM TABLE2 
WHERE 
TABLE1.NAME LIKE '%XYZ%' 
AND 
TABLE1.ID = TABLE2.AUDITED_ID; 

Query2:

SELECT ID FROM DOMAINS 
WHERE NAME LIKE '%GGV%' 
UNION 
SELECT AUDITED_ENTITY_ID FROM AUDIT_LOGS 
WHERE 
DOMAINS.ID = AUDIT_LOGS.AUDITED_ENTITY_ID; 

Я попытался несколькими способами, но он не работает, я всегда получал сообщение об ошибке, любая идея, как я должен Начало?

+0

Можете ли вы опубликовать некоторые примеры данных и необходимый результат? – Aleksej

+1

вы должны использовать внутреннюю связь с условием Where –

ответ

1

Вы должны использовать INNER JOIN в первую присоединиться обе таблицы на ID - Это удалит ненужные идентификаторы из результирующего набора

Затем используйте WHERE условие для проверки вы кондиционировать

SELECT 
    t1.ID , 

    -- you can select other columns from t1 and t2 here 
    t2.AUDITED_ID , 
    t1.NAME 

FROM TABLE1 t1 

INNER JOIN TABLE2 t2 ON t2.AUDITED_ID = t1.ID 
WHERE t1.NAME LIKE '%XYZ%' 
Смежные вопросы