Задать вопрос
@ak_wi

MySQL: Почему не работает запрос для many to many с несколькими параметрами AND?

Использую запрос:

SELECT p0_.id                AS id
FROM product p0_
         LEFT JOIN product_color_group p7_ ON p0_.id = p7_.product_id
         LEFT JOIN color_group c3_ ON c3_.id = p7_.color_group_id
WHERE (c3_.id IN (8, 15))
HAVING COUNT(DISTINCT c3_.id) = 2
ORDER BY p0_.id ASC
LIMIT 100;


В таблице product_color_group только product_id и color_group_id

Запрос возвращает только 1 товар, хотя товаров с двумя этими цветами в базе больше. В чем может быть проблема?
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Gomonov
@Gomonov
HAVING COUNT(DISTINCT c3_.id) = 2
на
GROUP BY p0_.id
HAVING COUNT(c3_.id) = 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ak_wi Автор вопроса
А как получить товары у которых только 1 связь?

HAVING COUNT(c3_.id) = 1

Не выдает корректного результата, показывая товары у которых есть еще цвета
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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