Mysql 不满足条件的选择查询返回值0

Mysql 不满足条件的选择查询返回值0,mysql,Mysql,我试图选择count(*)作为变量,根据某些条件按产品分组 如果不满足该条件,我希望查询返回0作为该乘积的count变量值 我正在使用MySQL数据库并尝试在SAS中使用它,以下是我的查询: SELECT COUNT(*) AS common_mtrl, product AS product2 FROM join_mkt_sort A, support_mtrl B WHERE support_mtrl_ind >= 1 AND A.EKEY =

我试图选择
count(*)
作为变量,根据某些条件按产品分组

如果不满足该条件,我希望查询返回0作为该乘积的count变量值

我正在使用MySQL数据库并尝试在SAS中使用它,以下是我的查询:

  SELECT COUNT(*) AS common_mtrl, product AS product2 
    FROM join_mkt_sort A, support_mtrl B  
   WHERE support_mtrl_ind >= 1
         AND A.EKEY = B.SKEY 
         AND A.PKEY = B.SKEY
GROUP BY product

我希望查询为不符合条件的产品将
0
分配给变量
common\u mtrl

问题在于您的加入。假设您想要的所有行都在“A”表中,您可以这样连接它们:

select count(B.SKEY) as common_mtrl, product as product2
from join_mkt_sort A left outer join
     support_mtrl B  
     on A.EKEY = B.SKEY and A.PKEY = B.SKEY and
        support_mtrl_ind >=1 
group by product;

左侧外部联接
保留第一个表中的所有行,即使没有匹配项。
count()
统计匹配数。

如果count为0,则检查条件

select sum(case when support_mtrl_ind >=1 then 1 else 0 end) as common_mtrl,
       product as product2 
from join_mkt_sort A
    ,support_mtrl B  
where A.EKEY = B.SKEY and A.PKEY = B.SKEY
group by product
 set @count int=0 set @result int select @count=count(*) as
 common_mtrl,product as product2 from join_mkt_sort A,support_mtrl B  
            where support_mtrl_ind >=1 
            and A.EKEY = B.SKEY and A.PKEY = B.SKEY
            group by product if(@count=0) set @result=0

product
在哪个表上?您是否有一个表格来记录所有产品的详细信息?您担心产品不令人满意的“条件”是什么?join或support\u mtrl\u ind>=1?Gordon的答案对我很有用。@user2542275那么别忘了将其标记为正确答案。他没有具体说明他担心满足的“条件”。如果连接是他的条件,那么您的答案将处理该情况。如果support\u mtrl\u ind>=1是他的情况,我的人会处理这个案子。@BillGregg。这可以同时处理这两个问题。比较在
on
子句中,因此将聚合
A
中的所有行。
 set @count int=0 set @result int select @count=count(*) as
 common_mtrl,product as product2 from join_mkt_sort A,support_mtrl B  
            where support_mtrl_ind >=1 
            and A.EKEY = B.SKEY and A.PKEY = B.SKEY
            group by product if(@count=0) set @result=0