查询所有选修了1号课程的学生名字
时间: 2023-11-24 15:13:34 浏览: 41
好的,查询所有选修了1号课程的学生名字的 SQL 语句如下:
```
SELECT student.name
FROM student
INNER JOIN course_selection
ON student.id = course_selection.student_id
WHERE course_selection.course_id = 1;
```
其中,`student` 表是学生信息表,包含学生的姓名、学号等信息,`course_selection` 表是选课记录表,包含学生选课的信息,包括学生学号、课程编号等。以上 SQL 语句会先通过 `INNER JOIN` 连接两个表,然后根据课程编号筛选出选修了1号课程的学生记录,最后查询这些学生的姓名。
相关问题
EXISTS查询查询没有选修1号课程的学生的姓名
假设关系模式如下:
```
Student(Sid: string, Sname: string, Age: integer, Gender: string)
Course(Cid: string, Cname: string, Tid: string)
SC(Sid: string, Cid: string, Score: integer)
```
可以使用以下SQL语句进行查询:
```
SELECT Sname
FROM Student
WHERE Sid NOT IN (
SELECT Sid
FROM SC
WHERE Cid = '1'
)
```
这个查询的思路是先在SC表中查询选修了1号课程的所有学生,然后在Student表中排除这些学生,最后得到没有选修1号课程的学生姓名。
查询选修了1和2号课程的学生
您好!针对您的问题,可以使用以下SQL语句进行查询:
```
SELECT student_id
FROM course_selection
WHERE course_id IN ('1', '2')
GROUP BY student_id
HAVING COUNT(DISTINCT course_id) = 2;
```
其中,假设选修关系表为`course_selection`,其中包含`student_id`和`course_id`两个字段,表示某个学生选修了某门课程。以上SQL语句中,使用`IN`关键字筛选选修了1号课程和2号课程的学生,然后使用`GROUP BY`对学生ID进行分组,再使用`HAVING`关键字筛选选修了2门课程的学生。