我有一个具有以下指定结构的表
从表中,我只想获取具有值为 12 的Ram且具有 Blue 的颜色的产品ID。结果是1。 我尝试了很多查询,但并没有达到预期的结果。
解决方案是什么?
由于我们具有一组未定义的功能,因此很难为每个功能管理单独的表。
答案 0 :(得分:1)
您可以使用条件聚合:
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';
答案 1 :(得分:0)
使用不存在的相关子查询
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')