tab_student 为 左表,5000 + 数据,存储三个年级的学生基本信息,通过‘入学年份’区分
yk_2020 为 右表,30000 + 数据,存储学生多次考试成绩,根据‘考试编号’区分
现要查询 2020 级学生的某次成绩,
###代码如下:
SELECT st. 学号,st. 姓名,st. 班级,sc. 总分
FROM (SELECT 学号,姓名,班级 FROM tab_student where 入学年份 = 2020) st
left join (select 学号,总分 from yk_2020 where 考试编号 =’2020313’) sc on st. 学号 = sc. 学号
存在问题,查询需要 5 秒左右。
如果使用以下代码,速度0.2秒,但不是想要的结果,因为,有的学生没有考试成绩,就会被过滤掉,不能显示左表数据。
#####
SELECT st.学号,st.姓名,st.班级,sc.总分
FROM tab_student
st left join yk_2020 sc on st.学号=sc.学号
where st.入学年份=2020 and sc.考试编号=2020313
有没有办法能优化。特请指点。感激。 可以联系qq:52128402
链接:https://pan.baidu.com/s/1vWPgBppxwQaPVDWgsgD4sw?pwd=6666
提取码:6666
数据文件已传到网盘。