我正在尝试排除以前见过的ID号,我的查询是
select id from table1 where date1 >= eDate1 and date1 <= eDate2 and zId = 256
and id no in
(select id from table1 where date1 < eDate1 and zId = 256)
MonetDB。
有没有更好的方法,我试图简单地排除在所选日期范围之前在区域中看到的任何ID号?
感谢。
答案 0 :(得分:0)
某些数据库优化器可以处理大型ID列表,其他数据库优化器不能很好地处理它。
最好的方法是使用左连接并过滤未命中:
select a.id
from table1 a
left join table1 b on a.id = b.id and b.date1 < eDate1
where a.date1 between eDate1 and eDate2
and zId = 256
and b.id is null