1

我有这个结果集

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

我正在尝试获取以下条目

获取具有 attribute_id = 5 和 value = 'Yamaha Mate V50' 和 attribute_id = 6 和 value = 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_id

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

提前致谢

4

1 回答 1

2
SELECT ad_id FROM value
WHERE (attribute_id,value) IN ((5,'Yamaha Mate V50'),(6,'2012'))
GROUP BY ad_id
HAVING count(*)=2
于 2012-11-04T19:33:12.280 回答