如果我查询:
SELECT PartNumber FROM Product_Options;
我得到这样的结果:
我真正需要做的是从Product_Options中选择所有选项,其中OptionName ='类别' AND OptionValue =' KID',OptionName ='类别' AND OptionName =' SKT'。 OptionName必须在SAME行中包含这些值。
我现在可能在这里,但我尝试的查询导致语法错误:
SELECT PartNumber FROM Product_Options WHERE OptionName =' Category' AND OptionValue =' KID',OptionName ='类别' AND OptionValue =' SKT';
如果它确实有效,上面的查询将返回' CR5661'以及任何其他PartNumbers的OptionValue为KID和OptionValue为SKT
我不确定是否需要使用JOIN,但想法是选择类别为KID的所有部件号,并且类别也是SKT,所有部件号都具有相同的PartNumber。
答案 0 :(得分:1)
如果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
将来源限制为您的值寻找。
<param-value>mypackage.GetEDPInfo</param-value>