以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询速度  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97256)

--  作者:良才
--  发布时间:2017/3/8 17:35:00
--  查询速度

查询老生没报名,行数比较(3000)

方法1

Sel ect  学期,班级,b.学生编号,b.学生姓名 From {学生基本信息} a Inner JOIN {缴费信息} b ON a.学生编号 = b.学生编号 WHERE b.学期 = \'2016年秋季\' And b.学生编号 not In (Sel ect 学生编号 From {缴费信息} WHERE 学期 = \'2017年春季\')

方法2  这样查的速度非常快,这样可以吗?

Sel ect  学期,班级,b.学生编号,b.学生姓名 From ({学生基本信息} a Inner JOIN {缴费信息} b ON a.学生编号 = b.学生编号) LEFT JOIN(Se lect 学生编号 From {缴费信息} WHERE 学期 = \'2017年春季\') d ON b.学生编号 = d.学生编号 WHERE b.学期 = \'2016年秋季\' And d.学生编号 Is  Null


--  作者:有点色
--  发布时间:2017/3/8 17:39:00
--  
子查询都比较慢。一般的子查询都可以改成连接查询,如你的方法2
--  作者:良才
--  发布时间:2017/3/8 20:04:00
--  
谢谢