Я пытаюсь создать динамический запрос c, который объединяет мои таблицы и фильтрует выбранные фильтры. В моем примере products_bind_filters - это элементы фильтра, которые принадлежат каждому продукту.
Я пытаюсь найти продукты, которые имеют следующие критерии, в качестве примера в одном результате:
- Продукты красного, зеленого или синего цвета
- , также доступные в маленьком или среднем размере
Мой запрос:
SELECT *,
p.name as productName,
c.name as categoryName,
p.price as productPrice,
p.hookName as productHook,
c.hookName as categoryHook,
p.imageMain as productThumb
FROM products p
JOIN products_bind_category pbc ON pbc.productsId = p.productsId
JOIN category c ON pbc.categoryId = c.categoryId
JOIN products_bind_value pbv ON pbv.productsId = p.productsId
WHERE p.productsId != '0'
AND pbc.categoryId = '10'
AND (pbv.valueId = '54' ) AND (pbv.valueId = '167' OR pbv.valueId = '186' OR pbv.valueId = '175' )
GROUP BY p.productsId
ORDER BY p.Price ASC
Однако он не возвращается правильные результаты. Есть продукты, которые соответствуют критериям, но они не отображаются.
Есть идеи?
Я пытался использовать запрос IN, но он также не работал.