表1有2列
C1 | C2
-------
A | 1A
A | 2A
A | 3A
B | 1B
B | 2B
C | 1C
D | 1D
D | 2D
D | 3D
D | 4D
表2有2列
ID | C2
1 | 1A
1 | 2A
1 | 3A
1 | 1B
2 | 1D
2 | 2D
3 | 1C
4 | 1A
4 | 1B
RETURN 1,A AND 3,C因为1匹配A中的所有项目,3匹配C中的所有项目
答案 0 :(得分:0)
如果我假设每列中的值都是唯一的,那么关键的想法是在表中的 second 列上进行连接,然后进行聚合。
having
子句可以计算匹配数,并确保它与第一个表中的预期数匹配:
select t1.c1, t2.c1
from t1 join
t2
on t1.c2 = t2.c2
group by t1.c1, t2.c1
having count(*) = (select count(*) from t1 tt1 where tt1.c1 = t1.c1);