mysql - 选择分组值

时间:2012-11-04 19:26:30

标签: mysql

我有这个结果集

http://i.stack.imgur.com/7qb5g.jpg

我试图获得以下条目

获取具有attribute_id = 5且值='Yamaha Mate V50'且attribute_id = 6且值= 2012

的条目的ad_id

我尝过像

这样的东西
SELECT ad_id FROM value WHERE attribute_id = 5 && value = 'Yamaha Mate V50' && attribute_id = 6 && value = '2012'

这给出了一个空的结果集

如果我这样做了

SELECT ad_id FROM value WHERE attribute_id = 5 && value = 'Yamaha Mate V50' || attribute_id = 6 && value = '2012'

我得到ad_id = 1和3这是好的但是我也得到ad_id = 2这是合乎逻辑的,因为它确实有这个条件(attribute_id = 6&& value ='2012')

那么我应该怎么做才能只选择满足这两个条件的ad_ids

(attribute_id = 5&& value ='Yamaha Mate V50')“AND”(attribute_id = 6&& value ='2012')

提前致谢

1 个答案:

答案 0 :(得分:2)

SELECT ad_id FROM value
WHERE (attribute_id,value) IN ((5,'Yamaha Mate V50'),(6,'2012'))
GROUP BY ad_id
HAVING count(*)=2