这是我的数据库中表的结构:
**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 中具有行的电子邮件。
我究竟做错了什么?