建立三个表 student id,name course id, name sc sid cid id grade 其中sid,cid为对应的外键
1选了为math科目的所有学生的id、姓名
SELECT * FROM student WHERE id IN (SELECT sid FROM sc WHERE cid = (SELECT id FROM course WHERE NAME='math'))
2 查询各个科目得分最高的学生的学号和姓名
此句mysql无法执行,oracle应该是可以执行的
SELECT * FROM student WHERE id IN (SELECT t FROM (SELECT MAX(z.`grade`) ,cid FROM sc z WHERE cid IN (SELECT DISTINCT(cid) FROM sc z,course c WHERE z.cid =c.id) GROUP BY cid ))