用sql语句查询选修了课程且参加了考试的学生学号和成绩,要求结果表中没有重复行
时间: 2024-02-23 07:00:41 浏览: 144
好的,我可以帮你写出这个查询语句。假设选修课程的表名为`course`,参加考试的学生的表名为`exam`,学生的表名为`student`,那么查询语句如下:
```sql
SELECT DISTINCT exam.student_id, exam.score
FROM exam
INNER JOIN course ON exam.course_id = course.course_id
INNER JOIN student ON exam.student_id = student.student_id;
```
以上查询语句使用了内连接(`INNER JOIN`),将选修课程表、参加考试的学生表和学生表连接起来,以获取选修了课程且参加了考试的学生学号和成绩。同时使用了`DISTINCT`关键字,确保结果表中没有重复行。
相关问题
用SQL语句查询选修课程‘c01’的学生集合与选修课程‘c02’的学生集合的差集,表student记录学生的姓名和学号,表sc记录学生选修课程情况,包括选修的课程号,学生的学号(是表student的外键)。
您可以使用以下SQL语句查询选修课程‘c01’的学生集合与选修课程‘c02’的学生集合的差集:
SELECT s.s_name, s.s_id
FROM student s
LEFT JOIN sc sc1 ON s.s_id=sc1.s_id AND sc1.c_id='c01'
LEFT JOIN sc sc2 ON s.s_id=sc2.s_id AND sc2.c_id='c02'
WHERE sc1.s_id IS NOT NULL AND sc2.s_id IS NULL;
T-sql语句查询选修了991102号学生选修了的课程的学生学号和姓名
好的,以下是对应的 T-SQL 查询语句:
```
SELECT s.学号, s.姓名
FROM 学生 s
INNER JOIN 选课 x ON s.学号 = x.学号
WHERE x.课程号 = '991102'
```
解释一下,这个查询语句使用 INNER JOIN 连接了学生表(student)和选课表(select_course),通过学号来关联两个表。然后在 WHERE 子句中指定课程号为 '991102',从而筛选出选修了该门课程的学生。最后 SELECT 子句中选择了学号和姓名两个字段进行输出。
阅读全文