(一)使用连接(JOIN)来代替子查询
MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果
然后把这个结果作为过滤条件用在另一个查询中。
使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,
同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接(JOIN)替代。原语句:
SELECT oas.* FROM oms_after_sale oas
LEFT JOIN oms_after_sale_status_log oassl ON oassl.`after_sale_id` =oas.`id`
WHERE oas.after_status=10
AND oassl.create_time <= DATE_SUB(NOW(),INTERVAL 7 DAY)
AND oas.`id` NOT IN (SELECT oasc.aftersale_id FROM oms_after_sale_comment oasc)
如果使用连接(JOIN)..来完成这个查询工作,速度将会快很多。尤其是当oms_after_sale_comment 表中对aftersale_id