Здравствуйте.
Подскажите пожалуйста как реализовать запрос "выбрать uid товара если он есть в наборе одних категорий и нет в наборе других категорий"
Пробую реализовать вот так :
SELECT product_category_matching.uid_product
FROM product_category_matching
WHERE EXISTS
(SELECT product_category_matching.uid_product
FROM product_category_matching WHERE product_category_matching.uid_category IN ("1category", "2category"))
AND NOT EXISTS
(SELECT product_category_matching.uid_product
FROM product_category_matching WHERE product_category_matching.uid_category IN ("3category"))
GROUP BY product_category_matching.uid_product
Не работает.
В таком запросе uid точно есть в категориях первого условия и нет в категории второго условия
Таблица имеет вид:
uid_category | uid_product
1category | 1product
2category | 1product
3category | 2product
Количество категорий не ограничено и товар может находится в нескольких категориях сразу. Всё это к тому, что если скажем так "деактивируется" одна из категорий, нужно проверить есть ли товар в других "активных" категориях. Если есть то мы ничего не трогаем, если товара нет в других категориях, то деактивируем товар...