Sql 如何选择具有不同值的不同字段

Sql 如何选择具有不同值的不同字段,sql,select,field,Sql,Select,Field,我有一个这样构造的表:idproduct、field、value 我希望所有idproducts都有一个字段='productdescription'和一个值'Keyword',还有一个字段='productpackaging'和一个值'Keyword2' 我尝试过这样的东西,但不起作用 SELECT idproduct FROM table WHERE field='productname' AND value LIKE '%Keyword1%' AND field = 'produc

我有一个这样构造的表:idproduct、field、value

我希望所有idproducts都有一个字段='productdescription'和一个值'Keyword',还有一个字段='productpackaging'和一个值'Keyword2'

我尝试过这样的东西,但不起作用

SELECT idproduct
FROM table
WHERE field='productname'
  AND value LIKE '%Keyword1%'
  AND field = 'productpackaging'
  AND value LIKE '%KeyWord2%'
困难的部分是一个idproduct有多个不同的字段,这些字段具有唯一的值


我做错了什么?

通过
进行分组,确保两个不同的值:

SELECT idproduct
FROM table
WHERE (field = 'productname' AND value LIKE '%Keyword1%')
  OR  (field = 'productpackaging' AND value LIKE '%KeyWord2%')
GROUP BY idproduct
HAVING COUNT(DISTINCT field) = 2

一种方法是使用聚合和条件计数:

SELECT idproduct
FROM table
group by idproduct
having count(case when field='productname' AND value LIKE '%Keyword1%' then 1 end) > 0
and count(case when field = 'productpackaging' AND value LIKE '%KeyWord2%' then 1 end) > 0

列值不能同时为productname和productpackaging。HAVING子句中缺少和。谢谢,你是个天才!