sql—如何使用where子句在不使用and或or子句的情况下一次性匹配多个列的组合

1cosmwyk  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(349)

我希望将多个列的组合与另一个表或同一个表本身的组合匹配。
例如,见表1和表2。


所以,我希望输出如下。

到目前为止,我一直在使用 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)

但它没有给我确切的输出。所以,我正在寻找这样一个查询,它可以为我的场景工作任何帮助都将不胜感激

kd3sttzy

kd3sttzy1#

我找到了我自己问题的答案,下面给出了同样的sql查询。

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

不过,如果有人有更好的解决方案,我们会很感激的。

pdtvr36n

pdtvr36n2#

你需要的是 INTERSECT 用于返回这些列的多个(两个或更多)select语句的结果的set运算符的值对于相应的列顺序应该相等。
因此,请考虑使用以下方法:

SELECT * FROM table1
INTERSECT
SELECT * FROM table2

演示

相关问题