product_filters
に参加する必要があります 属性ごとに個別に:
SELECT DISTINCT products.*
FROM products
JOIN product_filters AS f1 ON f1.product_id=products.id
JOIN product_filters AS f2 ON f2.product_id=products.id
WHERE ( f1.attribute_id=1 and f1.filter_id in (1,2) )
AND ( f2.attribute_id=3 and f2.filter_id in (6) )
あなたのバージョンは、product_filters
で単一の行を見つけようとしました 両方の属性IDがありますが、これは不可能です。