假设我有一个包含以下数据的表:

foreign-key | feature
          1 | a
          1 | b
          2 | a
          2 | b
          2 | c
          3 | a
          3 | c

我想要一个语句,它返回一个唯一的键列表,这些键同时分配了特性a和特性b,因此结果行应该是“1,2”。
假设我想在查询中添加额外的约束,那么如果不将整个内容嵌套到多个层中就好了。

最佳答案

这可以通过group byhaving来实现。

select foreign-key
from tbl
where feature in ('a','b')
group by foreign-key
having count(distinct feature)=2

10-08 16:07