- DISTINCT
- GROUP BY(不能与ORDER BY一起使用,细节看执行计划)
- EXISTS(某些地方推荐,数据越多越好用)
对下面这条语句去重,查询数据多时优化,数据多不推荐
SELECT 1 FROM a_r a
left join t_a_m b on a.id = b.pid
left join t_a_m c on a.id = c.pid
where a.status = '1' and ((b.tId = 55 AND c.tId = 55) OR (b.tId = 38 AND c.tId = 38)) order by seq desc LIMIT 9
SELECT ar.id FROM a_r ar WHERE EXISTS (SELECT 1 FROM a_r a
left join t_a_m b on a.id = b.pid
left join t_a_m c on a.id = c.pid
where a.status = '1' and ((b.tId = 55 AND c.tId = 55) OR (b.tId = 38 AND c.tId = 38)) AND a.id = ar.id) order by seq desc LIMIT 9
- UNION(不推荐使用 使用 UNION ALL)
本文探讨了在大量数据查询中如何有效使用DISTINCT、GROUP BY、EXISTS等SQL语句进行查询优化,避免使用UNION并推荐使用UNION ALL,通过实例展示了如何在复杂联表查询中实现数据去重及性能提升。
527

被折叠的 条评论
为什么被折叠?



