Выборка из одной таблицы Mysql по опциям в другой
Есть две таблицы (товары и набор фильтров и значений фильтров для товаров). Нужно выбрать все товары, у которых есть во второй таблице заранее известные опции (id опций) с заранее известными значениями.
пример:
table products
id
brand
model
price
table specif
id_product
id_specif
specif_value
Например, выбрать всё из products, у которых в specif есть id_specif=555 со значением specif_value='val1' и id_specif=666 со значением specif_value='val2'
пример:
table products
id
brand
model
price
table specif
id_product
id_specif
specif_value
Например, выбрать всё из products, у которых в specif есть id_specif=555 со значением specif_value='val1' и id_specif=666 со значением specif_value='val2'
1 ответов
Судя по тегам, оператор join вам знаком. Так в чем же проблема?
Соединяйте таблицы по products.id = specif.id_product. Обращаю внимание, соединение join, а не left join, так как вам нужны только строки, у которых есть какое-то значение в specif.
Далее фильтруйте только нужные строки where (id_specif=555 and specif_value='val1') or (id_specif=666 and specif_value='val2').