不是在条款中,是否有更好的方法

时间:2017-02-16 01:16:41

标签: sql monetdb

我正在尝试排除以前见过的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号?

感谢。

1 个答案:

答案 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