【发布时间】:2013-11-15 05:59:32
【问题描述】:
这是我数据库中表的结构:
**Email**
id (PK)
email
**Mail**
id (PK)
recipient
time
...
为了获取特定电子邮件收到的邮件的分布情况,我进行了以下查询:
select e.email,count(m.id) from mail m
right outer join email e on m.recipient=e.email
group by e.email
我明白了:
"e1";0
"e2";3644
"e3";0
"e4";10
"e5";4620
..
匹配表 Email 中的所有值,即所有电子邮件和带有count=0 的电子邮件。没关系。
问题是当我按日期过滤结果时:
select e.email,count(m.id) from mail m
right outer join email e on m.recipient=e.email
where m.time >= current_timestamp - interval '1 hour'
group by e.email
结果是:
"e1";1
"e2";1
"e3";1
...
我没有得到具有 count=0 的值,我只得到了 Mail 表中具有行的电子邮件。
我做错了什么?
【问题讨论】:
标签: sql postgresql count outer-join