Как использовать предложение where для соответствия комбинации нескольких столбцов в одном go без использования предложений AND или OR - PullRequest
0 голосов
/ 06 августа 2020

Я хотел сопоставить комбинацию нескольких столбцов как из другой таблицы, так и из самой таблицы.
Например, см. Table1 и table2.

enter image description here

enter image description here


So, I want the output like below.

введите описание изображения здесь

До сих пор я использовал предложение AND, чтобы добиться этого, как показано ниже:

select * from table1
where col1 in (select col4 from table2) 
and col2 in (select col5 from table2)
and col3 in (select col6 from table2)

Но он не дает мне точного результата. Итак, я ищу такой запрос, который может работать для моего сценария. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Что вам нужно, так это INTERSECT оператор set, который используется для возврата результатов нескольких (двух или более) операторов SELECT, для которых значения каждого столбца должны быть равны для соответствующего порядка столбцов.

Итак , рассмотрите возможность использования, как показано ниже:

SELECT * FROM table1
INTERSECT
SELECT * FROM table2

Демо

0 голосов
/ 06 августа 2020

Я нашел ответ на свой вопрос, и SQL его запрос приведен ниже.

select * from table1
where (col1,col2,col3) in (select col4,col5,col6 from table2);

Но все же, если у кого-то есть лучшее решение, то оно будет оценено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...