私は 4 つのテーブルを使用しています。それらを「products」、「attributes_categories」、「attributes」、「product_has_attributes」と呼びます。"products" のすべての製品には、次のように "product_has_attributes" に多くの属性があります。
[product_has_attributes] : product1
attribute_id=1 (Brands->Sony)
attribute_id=4 (Screen size -> 20")
attribute_id=7 (Colors -> Black)
attribute_id=8 (Colors -> White)
products と product_has_attributes は、products.id = product_has_attributes.product_id で結合されたままになります
単純な SELECT は、各製品をその属性の数だけ正しく返します。
ここで、次の製品をすべて選択したいと思います。
product_has_attributes.attribute_id=1 AND
product_has_attributes.attribute_id=4 AND
(product_has_attributes.attribute_id=7 OR
product_has_attributes.attribute_id=8)
しかし、予想どおり、product_has_attributes.attribute_id は同時に 1 AND 4 AND (7 OR 8) にすることはできません...したがって、レコードは返されません。
説明したロジックでレコードを返すように SQL を構築するにはどうすればよいですか?
ありがとう、ジョージ