首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要优化not in sql语句

问需要优化not in sql语句
EN

Stack Overflow用户
提问于 2012-12-27 04:29:07
回答 2查看 48关注 0票数 0

我有一个sql查询:

代码语言:javascript
复制
select person from table t1
inner join person_history ph
on t1.person = ph.person
and t1.person not in (select person from person_history 
                      where effective_date < '01-01-2013')
and ph.person.effective_date > '01-01-2013'

由于person_history包含大量记录,因此此查询花费的时间太长。

我如何优化这段代码?

EN

回答 2

Stack Overflow用户

发布于 2012-12-27 04:54:37

你就不能这样做吗:

代码语言:javascript
复制
select person from table t1
inner join person_history ph
on t1.person = ph.person
where ph.effective_date >= '01-01-2013'
票数 1
EN

Stack Overflow用户

发布于 2012-12-27 05:25:04

您不需要排除NOT IN,因为它已经被排除在WHERE过滤器中!SQL将非常简单,如下所示:

代码语言:javascript
复制
select person from table t1
inner join person_history ph on t1.person=ph.person
where effective_date > '01-01-2013'

或者:

代码语言:javascript
复制
select person from table t1
WHERE person IN(select ph.person from person_history ph
where effective_date > '01-01-2013' and t1.person=ph.person)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14045886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档