首页 > 解决方案 > 根据具有不同过滤选项的同一列上的 where 条件从表中选择详细信息

问题描述

我有一个具有以下指定结构的表

表结构

从表中,我只想检索具有值为12的 Ram 和具有Blue的颜色的产品 id 。预期结果是 1。我尝试了很多查询,但没有共享预期结果。

解决方案是什么?

由于我们有一组未定义的功能,因此很难为每个功能管理单独的表。

标签: sqlentity-attribute-value

解决方案


您可以使用条件聚合:

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';

推荐阅读