大学里,经常需要查询多门科目的同学比较多,如何使用MySQL查询多门科目成为了一个必备技能。下面将介绍如何查询多门科目成绩。
SELECT * FROM score WHERE sno IN (SELECT sno FROM score WHERE course_name='math') AND sno IN (SELECT sno FROM score WHERE course_name='English');
上述代码中使用了子查询,首先在score表中查询所有有成绩的学生学号,然后根据学号查询数学、英语成绩。如果需要查询更多科目,只需继续添加sno IN子查询即可。
SELECT * FROM score WHERE sno IN (SELECT sno FROM score WHERE course_name='math') AND sno IN (SELECT sno FROM score WHERE course_name='English')AND sno IN (SELECT sno FROM score WHERE course_name='Chinese');
上述代码查询了数学、英语、语文三门科目的成绩。
同时,如果需要查询某个班级的多门科目成绩,也可以通过再次添加IN子查询实现。
SELECT * FROM score s1 WHERE s1.sno IN (SELECT sno FROM student WHERE class_name='ClassA') AND s1.course_name='math' AND s1.sno IN (SELECT sno FROM score s2 WHERE s2.course_name='English' AND s2.sno=s1.sno);
上述代码中,我们先在student表中查询班级为ClassA的学生学号。然后在score表中根据数学科目查询出成绩,再在score表中查询所有有英语成绩的学生,并确保学生的学号是数学成绩查询出来的学生之一。
综上所述,MySQL查询多门科目成绩是一个比较常见的需求,通过以上介绍的方法,相信大家已经可以娴熟地处理这一问题了。