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 に答える