首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括COUNT() =0的结果

问包括COUNT() =0的结果
EN

Stack Overflow用户
提问于 2015-09-07 08:24:29
回答 1查看 65关注 0票数 1

若要选择带有计数的表字段,请执行以下操作。那部分起作用了。我还需要包含计数为0的结果。

这就是我试过的

代码语言:javascript
复制
SELECT mallname, COUNT( * ) AS Count
FROM `malls`
INNER JOIN Mal_Client_Relationship ON Mal_Client_Relationship.m_Id = malls.m_Id
INNER JOIN clients ON Mal_Client_Relationship.id_user = clients.id_user
INNER JOIN dates ON dates.date_id = Mal_Client_Relationship.date_id
WHERE confirmcode = 'y' && EndDate >= CURRENT_DATE( ) || HAVING count(*) = 0
GROUP BY `mallname`
ORDER BY `mallname` 

和

代码语言:javascript
复制
SELECT mallname, COUNT( * ) AS Count
FROM `malls`
INNER JOIN Mal_Client_Relationship ON Mal_Client_Relationship.m_Id = malls.m_Id
INNER JOIN clients ON Mal_Client_Relationship.id_user = clients.id_user
INNER JOIN dates ON dates.date_id = Mal_Client_Relationship.date_id
WHERE confirmcode = 'y' && EndDate >= CURRENT_DATE( ) || count(*) = 0
GROUP BY `mallname`
ORDER BY `mallname` 

和

代码语言:javascript
复制
SELECT mallname, COUNT( * ) AS Count
FROM `malls`
INNER JOIN Mal_Client_Relationship ON Mal_Client_Relationship.m_Id = malls.m_Id
INNER JOIN clients ON Mal_Client_Relationship.id_user = clients.id_user
INNER JOIN dates ON dates.date_id = Mal_Client_Relationship.date_id
WHERE confirmcode = 'y' && EndDate >= CURRENT_DATE( ) || count(mallname) = 0
GROUP BY `mallname`
ORDER BY `mallname` 

来阐明它背后的逻辑。当计数达到60 (60个客户端)时,我需要禁用mallname。我在php中这样做,这是可行的。但是我需要包含带0计数的mallname (这意味着购物中心还没有客户链接到它。

希望一切都有意义..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 08:36:46

您所面临的问题是,某些组(商城名称)在有零计数的情况下会被删除。这个问题的一个解决方案是首先选择所有的购物中心名称,然后根据每个购物中心名称分组得到的结果LEFT JOIN这个结果。

代码语言:javascript
复制
SELECT DISTINCT m.mallname, COALESCE(t.Count, 0)
FROM `malls` m LEFT JOIN
(
    SELECT mallname, COUNT( * ) AS Count
    FROM `malls`
    INNER JOIN Mal_Client_Relationship ON Mal_Client_Relationship.m_Id = malls.m_Id
    INNER JOIN clients ON Mal_Client_Relationship.id_user = clients.id_user
    INNER JOIN dates ON dates.date_id = Mal_Client_Relationship.date_id
    WHERE confirmcode = 'y' && EndDate >= CURRENT_DATE( ) || HAVING count(*) = 0
    GROUP BY `mallname`
    ORDER BY `mallname`
) t
ON m.mallname = t.mallname
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32434132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档