使用 IN 子查询查找所修课程编号为 0002、0005 的学生学号、姓名、 性别
时间: 2023-12-26 20:04:29 浏览: 256
以下是使用 IN 子查询查找所修课程编号为 0002、0005 的学生学号、姓名、性别的 SQL 查询语句:
```
SELECT 学号, 姓名, 性别
FROM 学生
WHERE 学号 IN (
SELECT 学号
FROM 选课
WHERE 课程编号 IN ('0002', '0005')
);
```
注意,上述查询语句中,`学生` 表是学生信息表,包含 `学号`、`姓名`、`性别` 等字段;`选课` 表是选课信息表,包含 `学号`、`课程编号` 等字段。其中,`IN` 子查询用于查询选修了课程编号为 0002 或 0005 的学生的学号,然后再用 `WHERE` 子句过滤出对应的学生信息。
相关问题
使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别
假设学生表为 student,修课表为 course,学生和课程的关系表为 score,下面是使用 IN 子查询查找所修课程编号为 0002、0005 的学生学号、姓名、性别的 SQL 语句:
```
SELECT s.id, s.name, s.gender
FROM student s
WHERE s.id IN (
SELECT sc.id
FROM score sc
WHERE sc.course_id IN ('0002', '0005')
);
```
解释一下这个 SQL 语句的执行过程:先在 score 表中找到修了课程编号为 0002 或者 0005 的记录,然后从这些记录中取出学生的 id,再在 student 表中找到这些 id 对应的学生的信息。最终返回学号、姓名、性别三个字段。
在grade和student_info数据库中使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别
假设grade表中有以下字段:student_id(学生学号)、course_id(课程编号)、score(课程成绩);student_info表中有以下字段:student_id(学生学号)、name(学生姓名)、gender(学生性别)。
使用IN子查询可以使用以下SQL语句:
```
SELECT student_info.student_id, student_info.name, student_info.gender
FROM student_info
WHERE student_info.student_id IN (
SELECT grade.student_id
FROM grade
WHERE grade.course_id IN ('0002', '0005')
);
```
在这个SQL语句中,子查询 `SELECT grade.student_id FROM grade WHERE grade.course_id IN ('0002', '0005')` 返回修读了课程编号为0002或0005的学生学号,然后这些学号被用于主查询的 `WHERE` 子句中的 `IN` 操作符中,来过滤出对应学号的学生信息。
阅读全文