我有这个结果集
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')
提前致谢
答案 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