Mysql 选择在两个不同行中具有某个值的所有零件号
如果我进行查询: 从产品选项中选择零件号 我得到的结果如下: 我真正需要做的是从Product_选项中选择所有选项,其中OptionName='Category'和OptionValue='KID',OptionName='Category'和OptionName='SKT'。OptionName必须在同一行中包含这些值 我现在可能离这里很远,但我尝试的查询导致语法错误: 从产品选项中选择零件号,其中OptionName='Category'和OptionValue='KID',OptionName='Category'和OptionValue='SKT' 如果它实际起作用,上述查询将返回“CR5661”以及OptionValue为KID和OptionValue为SKT的其他零件号 我不确定是否需要使用联接,但我的想法是选择类别为KID且类别也为SKT的所有零件号。所有零件号都具有相同的零件号。您可以使用Mysql 选择在两个不同行中具有某个值的所有零件号,mysql,sql,mariadb,Mysql,Sql,Mariadb,如果我进行查询: 从产品选项中选择零件号 我得到的结果如下: 我真正需要做的是从Product_选项中选择所有选项,其中OptionName='Category'和OptionValue='KID',OptionName='Category'和OptionName='SKT'。OptionName必须在同一行中包含这些值 我现在可能离这里很远,但我尝试的查询导致语法错误: 从产品选项中选择零件号,其中OptionName='Category'和OptionValue='KID',OptionN
count(distinct OptionValue)
或count(*)
如果选项值
对于每个零件号
都是唯一的,则使用where
将源限制为仅查找的值
select PartNumber
from Product_Options
where OptionName = 'Category'
and (OptionValue = 'KID' or OptionValue = 'SKT')
group by PartNumber
having count(distinct OptionValue)>1
请参阅,如果OptionValue='KID'或OptionValue='SKT',此查询将选择PartNumber吗?如果OptionValue='KID'和OptionValue='SKT',我只需要选择PartNumber。@GTSJoe Right,
having count(distinct OptionValue)>1
确保当它有多个'KID'
或'SKT'
时,它只返回PartNumber
,因为我们只计算distinct
值,我们知道,如果它有多个值,则至少有两个值,这意味着它同时具有这两个值。@GTSJoe很乐意提供帮助!