-- JAVA第一学年 课程成绩排名前十的学生,并且分数要大于80 的学生信息(学号,姓名,课程名称,分数)
SELECT s.studentNo, studentName,subjectName,studentResult
FROM student AS s
INNER JOIN result AS r
ON s.studentNo = r.studentNo
INNER JOIN subject AS sub
ON r.subjectNo = sub.subjectNo
WHERE subjectName = 'JAVA第一学年' AND studentResult >80
ORDER BY studentResult DESC
LIMIT 1,10
-- 方式二:使用子查询(由里及外)
-- 查询所有数据结构-1 的学生学号
SELECT studentNo, subjectNo, studentResult
FROM result
WHERE subjectNo = (
SELECT subjectNo FROM subject
WHERE subjectName = '数据库结构-1'
)
ORDER BY studentResult DESC
-- 分数不小于80分的学生的姓名和学号
SELECT studentNo, studentName,
FROM student AS s
INNER JOIN result AS r
ON r.studentNo = s.studentNo
WHERE studentResult >= 80
-- 在这个基础上增加一个科目,高等数学-2
SELECT studentNo, studentName
FROM student AS s
INNER JOIN result AS r
ON s.studentNo = r.studentNo
WHERE studentResult >= 80 AND subjectNo = (
SELECT subjectNo From subject WHERE sbjectName = '高等数学-2'
)
-- 嵌套方式--
SElECT studentNo, studentName FROM student WHERE studentNo IN (
SELECT studentResult FROM result WHERE studentResult>= 80 AND subjectNo =(
SELECT subjectNo FROM subject WHERE subjectName = '高等数学-2'
)
)
标签:studentNo,--,查询,嵌套,studentResult,subjectNo,WHERE,SELECT From: https://www.cnblogs.com/gss01/p/16653949.html