如何查询具有SQL中另一个表中所有值的键?
我有一个名为table1的表,它有两列,key和value。我有另一个名为Values的表,其中有一些值。如何查询具有SQL中另一个表中所有值的键?,sql,Sql,我有一个名为table1的表,它有两列,key和value。我有另一个名为Values的表,其中有一些值。 如何查询以获取具有值表中所有对应值的键?我认为这应该可以 select key , count(*) from (select distinct Table1.key , Table1.value from Table1 inner join Values on Valu
如何查询以获取具有值表中所有对应值的键?我认为这应该可以
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关键字。希望你的名字不会有这样的冲突