我有以下查询
select date, count(t.p_id)
from someTable t
right join generate_series('2019-09-01'::timestamp, least(current_date, '2019-09-05'), interval '1 day') AS g(date) on t.someDate @> date
where t.s_id = 42 and t.skl_id = 5
group by date
order by date
如果t.s_id或t.skl_id没有任何内容,我将返回空结果。
但就我有权利加入generate_series...
而言,我希望能得到5个原始数字。
我错过了什么?
答案 0 :(得分:1)
如果WHERE
子句中有条件,则在执行连接后 (在逻辑上)对其进行评估。因此,这样的WHERE
子句可以从联接中删除所有行。
如果您想在左侧使用NULL
值,则必须删除WHERE
子句并将其移到ON
子句。