- 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)