あなたはこの後だと思います:
SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3
値を24 red
にすることはできないため、ANDを使用することはできません。 および25 big
および27 round
同時に同じ行にありますが、style_id, style_value
の存在を確認する必要があります 同じimage_id
の下の複数の行 。
このクエリでは、INを使用しており(この特定の例では、ORと同等です)、一致する個別の行をカウントしています。 3つの異なる行が一致する場合、そのimage_id
に3つの属性がすべて存在することを意味します。 、そして私のクエリはそれを返します。