Задать вопрос
@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)

Хотя в других случаях такая конструкция работает, не могу понять в чем дело.
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так сделайте EXPLAIN этого запроса, и там скорее всего увидите, что в `range` и/или в `goods` нет записей, удовлетворяющих прописанным в JOIN параметрам.
Ответ написан
Ваш ответ на вопрос

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

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