MYSQL检查集合中的所有值与另一个集合匹配

时间:2014-03-14 01:45:44

标签: mysql set matching

我有两张表A和B,其值低于

表A

   X
------
1
2
3

表B

X       Y
------  ------
1       A
2       A
3       A
1       B
2       B
1       C
3       D

我只需要找到表B中与表A中的所有值匹配的Y值。 因此,对于上面的示例,匹配的唯一Y值是A(A的X值为1,2和3)

1 个答案:

答案 0 :(得分:0)

这是" set-within-sets"子查询。我喜欢用聚合和having子句来解决这个问题。

select b.y
from tableB b join
     tableA a
     on b.X = a.X
group by b.y
having count(distinct b.x) = (select count(*) from tableA);