选择两个表之间的完全匹配

时间:2014-08-11 18:12:00

标签: sql

我有两张桌子

T1

col1    col2
A        1
A        2 
B        1
C        2

T2

col1
1
2

我想检索tab1中与tab2中所有记录匹配的记录,

对于给定的场景,我想输出A只是因为它在col2中同时包含1和2,而B和C只有1或2(不是两者)。

1 个答案:

答案 0 :(得分:0)

您可以这样编写查询:

select t1.col1
from t1 join
     t2
     on t1.col2 = t2.col1
group by t1.col1
having count(distinct t1.col2) = (select count(distinct t2.col1) from t2);

这会计算第一个表中匹配值的数量,并将其与表格中的值总数进行比较。