SQL查询根据另一列

时间:2015-08-04 20:57:41

标签: mysql database

我一直在努力寻找一种相对简单的方法来执行此查询。我尝试过连接和测试,甚至尝试在查询之外执行逻辑,但它变得非常复杂。

这是我的SQL:

AttributeName_Id     |     ProductPrice_Id
    9                    |     1
    4                    |     1
    9                    |     2
    5                    |     2
    9                    |     3
    6                    |     3
    9                    |     4
    7                    |     4

我有输入9和5.如何执行查询以便检索值2?

1 个答案:

答案 0 :(得分:1)

这是一个“set-within-sets”查询。我想使用group byhaving解决这些问题,因为它非常灵活:

select ProductPrice_Id
from table t
where AttributeName_Id in (9, 5)
group by ProductPrice_Id
having count(*) = 2;

这假设表没有重复;否则,您可能需要count(distinct)