我有一个查询,查询中不是。
当我执行相同操作时,需要24秒。
请进行相同的优化
SELECT GRIRNO,grirdate
FROM GRIRmain
where grirno in (select grirno
from grir_pass
where ins_check is not null)
order by grirdate desc
答案 0 :(得分:1)
如果表中的GRIRNO
主键那么下面的查询可能会更好
SELECT GRIRNO,grirdate FROM GRIRmain
where not exists (select 1 from grir_pass
where ins_check is not null
and grir_pass.grirno=GRIRmain.GRIRNO
)
order by grirdate desc
从您的评论看来,您不必存在
答案 1 :(得分:0)
根据您的代码,可以使用内部联接重构子查询上的IN子句
SELECT GRIRmain.GRIRNO,GRIRmain.grirdate
FROM GRIRmain
INNER JOIN (
select distinct grirno
from grir_pass
where ins_check is not null
) t on t.grirno = GRIRmain.grirno
order by grirdate desc