您的位置:首页 > 数据库 > MySQL

46.笔记 MySQL学习——将子查询改写为连接

2017-11-17 21:25 686 查看
46.笔记 MySQL学习——将子查询改写为连接
连接的效率有时回避子查询更好,如果使用子查询的SELECT语句需要花费很长时间才能执行完毕,可以尝试把它改写为一个连接,看看执行效果是否有所改善。

改写用来查询匹配的子查询

原子查询如下:

mysql> select * from score where event_id in(select event_id from grade_event where category='T');

修改为连接如下:

mysql> select score.* from score inner joingrade_event on score.event_id = grade_event.event_id wheregrade_event.category='T';

改写用来查询非匹配的子查询

原子查询如下:

mysql> select * from student where student_id notin (select student_id from absence);

修改过如下:

mysql> select student.* from student left joinabsence on student.student_id=absence.student_id where absence.student_id isnull;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: