MYSQL Single Table Count()即使为NULL也显示
我一直在谷歌搜索——我可能只是太傻了,无法理解答案 我在mysql中有一个表-问题MYSQL Single Table Count()即使为NULL也显示,mysql,sql,Mysql,Sql,我一直在谷歌搜索——我可能只是太傻了,无法理解答案 我在mysql中有一个表-问题 +-------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+----------
+-------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO |
| status | varchar(255) | YES |
+-------------+---------------+------+
每个问题都有一个状态
我正在尝试获取一个select以统计所有问题并按状态列出它们:
选择状态,将(*)按状态从(日期(记录时间)>=)分组的问题中计算为“总计”
共有5种不同的状态-
报告
不固定
固定的
升级
提及
问题是-我的选择仅在计数>0时显示状态。即使count=null,如何显示所有状态
我试过了,但运气不好。我也看到人们谈论左连接解决方案,但那是多表问题
非常感谢 解决方案是您已经跨入的:一个具有所有这5种状态的表的
左连接。如果您没有这样的表,您可以将其创建为永久或动态(每次需要时):
您将需要一个额外的表(例如,称为Status)来存储所有状态的列表,即一个与issues表中相同类型的字段,并确保在该字段上放置索引
那么下面的SQL应该可以做到这一点:
select statuses.status,count(issues.id) from issues right join statuses on issues.status=statuses.status group by statuses.status
附加表的优点是,如果您决定使用其他状态,只需将其添加到表中,而无需更改任何现有SQL语句。这是一个多表问题。您需要一个列出状态的表和一个包含数据的表。
select statuses.status,count(issues.id) from issues right join statuses on issues.status=statuses.status group by statuses.status