@topalek

Как создать правильно уточняющий запрос?

Есть 3 таблицы product, property и product_property. product связаны с property через промежуточную таблицу product_property.
Как выбрать правильно товары из product, которые соответствовали бы нескольким property.id?
SELECT * FROM `product`
left join `product_property` ON `product_property`.product_id=`product`.id
WHERE (product.category_id=4625415)
  AND (product_property.property_id=20)
  AND (product_property.property_id=1)
 AND (product_property.property_id=5)


В общем, нужно реализовать фильтрацию товаров по характеристикам.
подскажите как сделать.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Шаблон.

SELECT product.id
FROM product
INNER JOIN product_property
INNER JOIN property
WHERE property.value IN ( {values list} )
GROUP BY product.id
HAVING COUNT(DISTINCT property.value) = {distinct values count}


Условия связывания и дополнительные ограничения допишете самостоятельно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы