製品と一連の属性を含むカテゴリがあります。それらの属性は「形状」と「直径」です。
フィルターを適用せずにカテゴリを開くと、次のクエリで製品を取得します。
"SELECT * FROM `products`
WHERE `category_id`
IN ('6', '7', '29', '8', '9', '36')"
次に、属性「直径」(id = 2) と値「8mm」(id = 4) をクリックして、次のクエリを生成します。
"SELECT * FROM `products`
JOIN `products_attributes_values`
ON (`products_attributes_values`.`product_id` = `products`.`id`)
WHERE `category_id` IN ('6', '7', '29', '8', '9', '36')
AND `products_attributes_values`.`attribute_id` = 2
AND `products_attributes_values`.`value_id` = ('4')"
そして、必要なものを取得します。すべてのビーズは「直径 8mm」です 次に、製品をさらにフィルタリングし、値「ラウンド」(id = 11) の属性「形状」(id = 3) をクリックします。クエリは次のようになります。
"SELECT * FROM `products`
JOIN `products_attributes_values`
ON (`products_attributes_values`.`product_id` = `products`.`id`)
WHERE `category_id` IN ('6', '7', '29', '8', '9', '36')
AND `products_attributes_values`.`attribute_id` = 2
AND `products_attributes_values`.`value_id` = ('4')
AND `products_attributes_values`.`attribute_id` = 3
AND `products_attributes_values`.`value_id` = ('11')"
何もない代わりに、直径8mmの丸い形のビーズを手に入れたい. 個別に、すべてのフィルターは正常に機能します。上記の例のようにそれらを混ぜたいときはうまくいきません。ジョブを完了するには、クエリをどのように変更する必要がありますか?
ありがとう。
アップデート:
1 つの属性の複数の値を、1 つまたは複数の別の属性と組み合わせたいと考えています。
たとえば、直径(id=2)が8mm(id=4)または直径(id=2)が10mm(id=5)で、形状(id=3)が円形(id=11)または形状のビーズを取得したい(id=3) ファセット(id=62)
最後に、ラウンドまたはファセット形状の 8mm または 10mm ビーズの両方を取得したいと考えています。