帮我写MySQL语句,查询选修过课程的student的记录
时间: 2023-05-15 19:07:10 浏览: 57
Sure, here's the MySQL statement to query the records of students who have taken elective courses:
SELECT * FROM student WHERE student_id IN (SELECT student_id FROM course_taken WHERE course_type = 'elective');
相关问题
mysql查询选修了课程的学生人数
假设选修课程的表名为 `course`,学生信息表为 `student`,选修课程的学生信息表为 `course_student`,其中 `course_student` 表中包含了选修课程的学生的学号和课程号。
可以使用如下 SQL 语句查询选修了某门课程的学生人数:
```sql
SELECT COUNT(DISTINCT s.student_id) AS student_num
FROM course_student cs
JOIN student s ON cs.student_id = s.student_id
WHERE cs.course_id = 'your_course_id';
```
其中 `your_course_id` 是要查询的课程的课程号。该 SQL 语句会返回一个名为 `student_num` 的列,其中包含了选修该门课程的学生人数。
MySQL查询至少选修一门课程的女学生
可以使用如下SQL语句查询至少选修一门课程的女学生:
```
SELECT *
FROM student
WHERE gender = '女' AND id IN (
SELECT student_id
FROM course_selection
GROUP BY student_id
HAVING COUNT(DISTINCT course_id) >= 1
);
```
这个查询语句中,首先在 `course_selection` 表中使用 `GROUP BY` 和 `HAVING` 子句来筛选出至少选修了一门课程的学生,然后在 `student` 表中使用 `WHERE` 子句来筛选出性别为女的学生,并且学生的ID在上一步筛选出的结果中。