@Pupochkin123

Реализация фильтра по свойствам. Как ограничить поиск?

Нужен сложный фильтр по свойствам с привязкой к категориям.
Схема базы
bgri9yoklelfsrtvxyidh-mgozy.png

Как на основе выбранных фильтров произвести ограниченный поиск?
SELECT * FROM products P, product_categories PC, product_options PO
  WHERE P.id = PC.product_id AND P.id = PO.product_id
    AND PC.category_id = 3
    AND PO.classifier_id in (1,2)
    AND PO.option_id in (5, 9999)

результаты не сокращаются(в случае если нет 100% совпадения по свойствам)
aazte0g4iict0uvk1rteilckyr8.png

свойства 9999 не существует, если свойства нет, запись в результатах должна отсутствовать.
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
SELECT * FROM products P, product_categories PC
WHERE P.id = PC.product_id
AND
PC.category_id = 3
AND 
(select count(*) from product_options as PO where P.id = PO.product_id AND PO.classifier_id in (1,2) AND PO.option_id in (5, 9999)) = 2
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы