これは私のデータベースのテーブルの構造です:
**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 に行がある電子メールを取得するだけです。
私は何を間違っていますか?