如果我查询:
从Product_Options中选择零件号;
我得到这样的结果:
我真正需要做的是从Product_Options中全部选择,其中OptionName ='Category'和OptionValue ='KID',OptionName ='Category'和OptionName ='SKT'。 OptionName在SAME行中必须具有这些值。
我现在可能不在这里,但是我尝试的查询导致语法错误:
从Product_Options中选择零件编号,其中OptionName ='Category'和OptionValue ='KID',OptionName ='Category'AND OptionValue ='SKT';
如果确实有效,则上面的查询将返回“ CR5661”,并且其他任何部件号的OptionValue为KID且OptionValue为SKT
我不确定是否需要使用JOIN,但是想法是选择类别为KID且类别也为SKT的所有零件号,所有零件号都具有相同的零件号。
最佳答案
如果每个count(distinct OptionValue)
的count(*)
都是唯一的,则可以使用OptionValue
或PartNumber
,并使用where
将源限制为您要查找的值。
select PartNumber
from Product_Options
where OptionName = 'Category'
and (OptionValue = 'KID' or OptionValue = 'SKT')
group by PartNumber
having count(distinct OptionValue)>1