我一直在谷歌搜索这个问题的答案,我相信这比我做的要容易,我想学习正确的方法来做到这一点。
我有一个表emails_sent
,我从中选择计数并按列分组。每行有 3 个之一type
- “确认”、“1 天”和“同一天”。我也在某个日期之前这样做。假设,这是我今天选择的示例查询:
SELECT Count(id) AS count,
type
FROM emails_sent
WHERE Date_format(date, '%Y-%m-%d') = '2013-03-29'
GROUP BY type
ORDER BY type;
这是它返回的内容:
+-------+----------+ | 计数 | 类型 | +-------+----------+ | 32 | 确认 | | 4 | 1天 | +-------+----------+
这很好,但是今天还有第三种“类型”恰好有 0 条记录,但我需要它来提取该计数,即使它是 0。
我还尝试创建一个只有这 3 个“类型”的第二个表,并使用右连接,但它仍然不会拉 0 计数。这就是我对这两个表所做的:
SELECT t.type,
Count(s.id) AS count
FROM emails_sent s
RIGHT JOIN email_types t
ON s.type = t.type
WHERE Date_format(s.date, '%Y-%m-%d') = '2013-03-29'
GROUP BY t.type;
我确定这只是我缺少的一些简单的东西。