如何查询具有SQL中另一个表中所有值的键?

如何查询具有SQL中另一个表中所有值的键?,sql,Sql,我有一个名为table1的表,它有两列,key和value。我有另一个名为Values的表,其中有一些值。 如何查询以获取具有值表中所有对应值的键?我认为这应该可以 select key , count(*) from (select distinct Table1.key , Table1.value from Table1 inner join Values on Valu

我有一个名为table1的表,它有两列,key和value。我有另一个名为Values的表,其中有一些值。
如何查询以获取具有值表中所有对应值的键?

我认为这应该可以

select key
     , count(*)
from 
     (select distinct
             Table1.key
           , Table1.value
      from   Table1
       inner join Values
          on Values.value = Table1.value
     )
group by key
having count(*) = (select count(distinct value) from Values)

having子句允许对聚合函数进行过滤。

我认为这是最简单的方法:

select t1.key
from table1 t1 join
     Values v
     on v.value = t1.value
group by t1.key
having count(distinct value) = (select count(*) from values);
注意:这假设
没有重复项

显然,
对于标识符来说是非常糟糕的名称,因为它们是SQL关键字。希望你的名字不会有这样的冲突