mysql查询选修编号为'c01'但没选修'c04'课程的学生学号
时间: 2024-01-18 15:02:17 浏览: 36
可以使用下面这条 SQL 语句来查询该信息:
SELECT student_id FROM course_selection WHERE course_id='c01' AND student_id NOT IN (SELECT student_id FROM course_selection WHERE course_id='c04');
相关问题
查询选修编号为'c01'或'c02'课程的学生姓名
假设选修信息存储在名为 `course_selection` 的表中,学生信息存储在名为 `student` 的表中,选课信息存储在名为 `course` 的表中,可以使用如下 SQL 语句查询选修编号为'c01'或'c02'课程的学生姓名:
```
SELECT student.name
FROM student
INNER JOIN course_selection
ON student.student_id = course_selection.student_id
INNER JOIN course
ON course_selection.course_id = course.course_id
WHERE course.course_code = 'c01' OR course.course_code = 'c02';
```
其中,`INNER JOIN` 关键字是用来连接多个表的,`ON` 关键字是用来指定连接条件的。在这个例子中,使用 `INNER JOIN` 连接了三个表,然后使用 `WHERE` 子句指定了查询条件,即选修编号为'c01'或'c02'课程的学生姓名。
1.查询既选修了课程c01又选修了课程c02的学生的学号和姓名。
好的,您的问题是:查询既选修了课程c01又选修了课程c02的学生的学号和姓名。以下是SQL语句:
```
SELECT student_id, student_name
FROM student_course
WHERE course_id IN ('c01', 'c02')
GROUP BY student_id, student_name
HAVING COUNT(DISTINCT course_id) = 2;
```
请注意,上述SQL语句是基于常见的关系型数据库,具体实现可能因实际情况而异。