查询选修课程一样且成绩相同的学生基本情况myslq简单语句代码
时间: 2024-12-04 16:26:05 浏览: 5
在MySQL中,你可以使用子查询和JOIN语句来查找选修了相同课程并且成绩相同的学生的基本情况。假设我们有两个表,一个是`students`表,包含字段`id`, `name`, `score`; 另一个表是`courses`表,包含字段`student_id`, `course_name`, `grade`。这里是一个简单的示例:
```sql
SELECT s1.*
FROM students s1
JOIN (
SELECT student_id, course_name, grade
FROM students
WHERE grade IN (SELECT grade FROM students GROUP BY course_name HAVING COUNT(*) > 1)
) s2 ON s1.course_name = s2.course_name AND s1.grade = s2.grade
WHERE s1.id NOT IN (
SELECT student_id
FROM (
SELECT student_id, COUNT(*) as count
FROM students
GROUP BY student_id, course_name, grade
HAVING COUNT(*) = 1
) subquery1
)
```
这个SQL做了以下操作:
1. 子查询s2找出所有成绩相同的组。
2. 主查询通过JOIN将s1表中选修了这些课程且成绩相同的学生挑选出来。
3. 使用`NOT IN`排除那些每个课程只有一条记录的学生。
阅读全文