我一直在努力寻找一种相对简单的方法来执行此查询。我尝试过连接和测试,甚至尝试在查询之外执行逻辑,但它变得非常复杂。
这是我的SQL:
AttributeName_Id | ProductPrice_Id
9 | 1
4 | 1
9 | 2
5 | 2
9 | 3
6 | 3
9 | 4
7 | 4
我有输入9和5.如何执行查询以便检索值2?
答案 0 :(得分:1)
这是一个“set-within-sets”查询。我想使用group by
和having
解决这些问题,因为它非常灵活:
select ProductPrice_Id
from table t
where AttributeName_Id in (9, 5)
group by ProductPrice_Id
having count(*) = 2;
这假设表没有重复;否则,您可能需要count(distinct)
。