@VaniLuksh

Как сделать запрос SELECT по нескольким значениям одного аргумента?

В БД (mySQL) наличия товаров есть три таблицы:
1) `goods`
- goods_id
- goods_name
2) `range`
-goods_id
-product_id
3) `availaibility`
-product_id
-storage_id
-cost

Нужно выбрать store_id где есть сразу несколько goods_name
Вариант который у меня почему то не работает:
select storage_id from availaibility
   join `range` r on availaibility.product_id = r.product_id
   join goods g on r.goods_id= g.goods_id
where goods_name in ('Игрушки', 'Обои')
group by storage_id having (count(*) = 2)

Хотя в других случаях такая конструкция работает, не могу понять в чем дело.
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
...
HAVING COUNT(DISTINCT `goods_name`) >= 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так сделайте EXPLAIN этого запроса, и там скорее всего увидите, что в `range` и/или в `goods` нет записей, удовлетворяющих прописанным в JOIN параметрам.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 апр. 2020, в 10:05
5000 руб./за проект
01 апр. 2020, в 09:55
1000 руб./за проект
01 апр. 2020, в 09:53
1000 руб./за проект