Mysql找出学生选修的所有课程的成绩都大于80分的学生姓名。
时间: 2023-05-21 21:00:43 浏览: 159
可以使用以下 SQL 语句来实现:
SELECT s.name
FROM student s
JOIN score sc ON s.id = sc.student_id
WHERE sc.score > 80
GROUP BY s.id
HAVING COUNT(*) = (SELECT COUNT(*) FROM course);
其中,student 表存储学生信息,包括学生姓名和学生 ID;course 表存储课程信息,包括课程名称和课程 ID;score 表存储学生选修课程的成绩信息,包括学生 ID、课程 ID 和成绩。这个 SQL 语句使用了 JOIN 操作将三个表连接起来,然后使用 WHERE 子句过滤出成绩大于 80 分的记录,再使用 GROUP BY 子句按照学生 ID 分组,最后使用 HAVING 子句过滤出选修了所有课程并且成绩都大于 80 分的学生。
相关问题
MySQL找出学生选修的课程的成绩都大于80分的学生姓名。
可以使用以下 SQL 语句来找出学生选修的课程的成绩都大于80分的学生姓名:
SELECT s.name
FROM student s
INNER JOIN score sc ON s.id = sc.student_id
INNER JOIN course c ON sc.course_id = c.id
WHERE sc.score > 80
GROUP BY s.id
HAVING COUNT(*) = (SELECT COUNT(*) FROM course);
这个 SQL 语句会先通过 INNER JOIN 连接 student、score 和 course 表,然后筛选出成绩大于80分的记录,接着通过 GROUP BY 和 HAVING 子句找出选修了所有课程并且成绩都大于80分的学生,最后返回这些学生的姓名。
MySQL中找出学生选修的所有课程的成绩都大于80分的学生姓名。
可以使用以下 SQL 语句来解决这个问题:
SELECT student_name
FROM student
WHERE student_id IN (
SELECT student_id
FROM score
WHERE score >= 80
GROUP BY student_id
HAVING COUNT(*) = (
SELECT COUNT(*)
FROM course
)
);
这个 SQL 语句使用了子查询和聚合函数来找出所有选修了所有课程且成绩都大于80分的学生姓名。
阅读全文