Postgresql postgres的右连接返回意外结果
我有以下疑问Postgresql postgres的右连接返回意外结果,postgresql,Postgresql,我有以下疑问 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 w
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分。
我遗漏了什么?如果在
WHERE
子句中有一个条件,则在执行联接后(逻辑上)对其进行计算。因此,这样的WHERE
子句可以从连接中删除所有行
如果您希望在左侧显示
NULL
值,则必须删除WHERE
子句,并将其移动到on
子句。对于sql相关的问题,请包含一个最小的数据示例。嗯,我认为WHERE子句不会对其产生影响。谢谢或者使用嵌套查询,这可能更具声明性。