MySQL查询课程不同、成绩相同的学生的学号、课程号和成绩。使用WHERE子句定义连接条件的隐式语法结构。
时间: 2024-09-28 18:15:34 浏览: 74
在MySQL中,你可以使用子查询和`DISTINCT`关键字结合`WHERE`子句来找出课程不同但成绩相同的学生。假设我们有两个表,一个是`students`(包含学生的学号`student_id`),另一个是`scores`(包含学生学号`student_id`和课程号`course_id`以及成绩`score`)。下面是一个示例查询:
```sql
SELECT s1.student_id, si.course_id, si.score
FROM students s1
JOIN (
SELECT DISTINCT score, course_id
FROM scores
) si
ON s1.student_id = si.student_id
WHERE s1.student_id NOT IN (
SELECT student_id
FROM scores
GROUP BY score, course_id
HAVING COUNT(DISTINCT course_id) > 1
);
```
这个查询首先找到每个成绩唯一的课程组合(`si`子查询),然后在`students`表中查找对应的学生学号。`NOT IN`部分排除了那些在一个成绩下有多个课程的学生。
阅读全文