select top 3 v1.fscph,v4.fsmjid from jr_hc_hczl v1 left join jr_hc_hczlentry v2 on v1.fid=v2.fparentid left join jr_hc_smjdjentry v4 on v2.fsmjid=v4.fentryid where v1.fscph like '%0606%' order by v1.fscph desc 优化
时间: 2023-07-15 11:15:03 浏览: 97
可以考虑以下优化方案:
1. 添加索引
在 `jr_hc_hczl` 表的 `fscph` 字段上添加索引,可以减少查询时的扫描范围,提高查询效率。
2. 减少关联表的数量
将关联表的数量尽量减少到最少,可以减少查询时的复杂度。在此语句中,可以将 `jr_hc_hczlentry` 表的关联去掉,改为直接在 `jr_hc_hczl` 表中查询 `fsmjid` 字段。
3. 使用 EXISTS 替代 LEFT JOIN
使用 EXISTS 替代 LEFT JOIN,可以减少查询时的复杂度,提高查询效率。
综上所述,可以优化为以下 SQL 语句:
```
SELECT TOP 3 v1.fscph, v4.fsmjid
FROM jr_hc_hczl v1
INNER JOIN jr_hc_smjdjentry v4 ON v1.fid = v4.fparentid
WHERE v1.fscph LIKE '%0606%' AND EXISTS (
SELECT 1 FROM jr_hc_hczlentry v2 WHERE v1.fid = v2.fparentid AND v4.fentryid = v2.fsmjid
)
ORDER BY v1.fscph DESC
```
注意:具体的优化方案需要根据实际情况进行调整和优化。
阅读全文