@Bamp

Как написать запрос по нескольким критерям в одном столбце?

Всем доброго времени суток! Имею таблицу представленную на рисунке, нужно найти id продукта, который удовлетворял бы сразу нескольким требованиям. Например: мне нужна ель с параметрами 200 10, т.е полученый id продукта будет равен 3. Надеюсь изъяснился понятно. Так вот вообще возможно ли написать такой запрос в mysql?
7946befc563c42b7bb90937e1b7c5d59.jpg
  • Вопрос задан
  • 238 просмотров
Решения вопроса 2
streetflush
@streetflush
Select  idпродукта from
(
  Select idпродукта  from table where 
                  (Значение = 200 and Idатрибута = 2 ) or 
                  (Значение = 10 and Idатрибута = 3) or
                  (Значение = "Ель" and Idатрибута = 1)
) t1
group by idпродукта
having count(idпродукта)>2
Ответ написан
@edb
SQL
select *
from table t1
where `id attrbute` = 1
and Значение = "Ель"
and exists (select * from table t2 
                 where t1.`id product` = t2.`id product` 
                    and  t2.`id attrbute` = 2 and t2.Значение = 200)
and exists (select * from table t3 
                  where t1.`id product` = t3.`id product` 
                      and t3.`id attrbute` = 3 and t3.Значение = 10)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Как вариант

select id from products as p
INNER JOIN productPropertys as type ON type.product_Id = p.id and type.value = 'ель'
INNER JOIN productPropertys as length ON length .product_Id = p.id and length .value = '200'
INNER JOIN productPropertys as someOtherProperty ON someOtherProperty .product_Id = p.id and someOtherProperty .value = '10'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы