select id,drg01,drg02,drg03,form,cag01,d.cag02,isotc,isbase,iswarn,isfz,isrm,isxfj,isaid,isnut,way,fda,ant,ddd, dddunit,step,interact,remarks from rat_drg d where 1 = 1 and not exists(select 1 from chr_path_drg p where p.drg01 = d.drg01 and p.state !=9 order by d.id desc) 优化
时间: 2023-10-02 18:06:56 浏览: 138
DRG.zip_drg_english
这段 SQL 查询语句可以进行如下优化:
1. 将 "1=1" 删除,因为不影响查询结果。
2. 将 "order by d.id desc" 删除,因为子查询中不需要排序。
3. 使用 LEFT JOIN 代替子查询,可以减小查询开销。
4. 对于连表查询中的表,应该添加索引以提高查询效率。
优化后的 SQL 查询语句如下:
SELECT
id,
drg01,
drg02,
drg03,
form,
cag01,
d.cag02,
isotc,
isbase,
iswarn,
isfz,
isrm,
isxfj,
isaid,
isnut,
way,
fda,
ant,
ddd,
dddunit,
step,
interact,
remarks
FROM
rat_drg d
LEFT JOIN chr_path_drg p ON p.drg01 = d.drg01
AND p.state != 9
WHERE
p.drg01 IS NULL;
同时,应该为 rat_drg 表中的 drg01 字段和 chr_path_drg 表中的 drg01 字段添加索引以提高查询效率。
阅读全文