Есть таблица products (id,name,price)
таблица product_options(привязываем к продукту опцию из таблицы options)
таблица product_option_values (значения опция для продукта)
есть запрос от фильтра
divany-i-kresla?parameters[1][]=1¶meters[1][]=4¶meters[4][]=7
parameters[1][]=1 - первая единица это option_id, вторая 1 - это option_value_id
parameters[1][]=4 - первая единица это option_id, вторая 4 - это option_value_id
parameters[4][]=1 - 4 это option_id, вторая 1 - это option_value_id
как вывести товары, которые соответствуют условию
чтобы у товара обязательно присутствовали все option_id (1,1,4) и наличие option_value_id
например вывести товары у которых опция массив( дуб или ель) и цвет (красный или синий). Сейчас выводит или массив(дуб или ель) или цвет(или красный или синий)
select distinct(products.id),products.* from products
left join product_descriptions on product_descriptions.product_id = products.id
left join product_option_values on products.id = product_option_values.product_id
where
product_descriptions.language_id = 1
and products.id in (1,2,5) and products.published = 1
and product_option_values.option_value_id in (1,7)
and product_option_values.option_id in (1,4)