выбор деталей из таблицы на основе условия where в том же столбце с другой опцией фильтрации - PullRequest
0 голосов
/ 19 июня 2019

У меня есть таблица с нижеуказанной структурой

Table structure

Из таблицы я просто хочу получить идентификатор продукта со значением Ram со значением 12 и цветом Синий . Ожидаемый результат равен 1 , Я перепробовал много запросов, но ожидаемый результат не передается.

Каким будет решение?

Очень сложно управлять отдельной таблицей для каждой функции, поскольку у нас есть неопределенный набор функций.

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Вы можете использовать условное агрегирование:

select productid
from t
group by productid
having max(case when feature = 'Ram' then value end) = '12' and
       max(case when feature = 'Color' then value end) = 'Blue';
0 голосов
/ 19 июня 2019

использовать коррелированный подзапрос с несуществующим

select distinct product_id from tablename a
where not exists 
     (select 1 from tablename b where a.product_id=b.product_id and feature='Ram' and value<>12)
and not exists 
     (select 1 from tablename c where a.product_id=c.product_id and feature='Color' and value<>'blue')
...