查询没学过“叶平”老师课的同学的学号、姓名;,用sql语句怎么写
时间: 2024-03-05 13:53:31 浏览: 62
假设学生信息存储在名为"students"的表中,包括"学号"和"姓名"两个字段,未学过“叶平”老师课的学生对应的“课程”字段为NULL或空字符串,则可以使用如下SQL语句查询:
```
SELECT 学号, 姓名 FROM students WHERE 课程 IS NULL OR 课程 = '';
```
其中,"SELECT"用于指定查询的字段,"FROM"用于指定查询的表,"WHERE"用于指定查询的条件。上述SQL语句中,我们指定查询"学号"和"姓名"两个字段,从"students"表中查询,筛选条件为"课程"字段为NULL或空字符串的记录。
相关问题
sql查询没学过“叶平”老师课的同学的学号、姓名;
可以使用如下的 SQL 语句来查询没学过“叶平”老师课的同学的学号和姓名:
```
SELECT s.id AS 学号, s.name AS 姓名
FROM student s
WHERE s.id NOT IN (
SELECT DISTINCT sc.student_id
FROM score sc
INNER JOIN course c ON sc.course_id = c.id
INNER JOIN teacher t ON c.teacher_id = t.id
WHERE t.name = '叶平'
);
```
其中,`student` 表存储了所有同学的学号和姓名信息,`score` 表存储了每个同学的选课和成绩信息,`course` 表存储了所有课程的信息,`teacher` 表存储了所有教师的信息。使用子查询和 `NOT IN` 操作来查询没学过“叶平”老师课的同学的学号和姓名。需要注意的是,这里使用了 `DISTINCT` 操作来去重,以避免同一个学生选了多门“叶平”老师的课程导致重复。
course表 teacher表 sc表 student表查询没学过“叶平”老师课的同学的学号、姓名
好的,根据您的要求,可以使用以下 SQL 语句来查询:
```
SELECT s.id, s.name
FROM student s
WHERE s.id NOT IN (
SELECT sc.student_id
FROM sc
INNER JOIN course c ON sc.course_id = c.id
INNER JOIN teacher t ON c.teacher_id = t.id
WHERE t.name = '叶平'
)
```
这条 SQL 语句会查询出所有没有学过叶平老师课的同学的学号和姓名。具体地,它使用了子查询来找出所有学过叶平老师课程的学生,然后用 NOT IN 子句来排除这些学生,最终返回没有出现在这个子查询结果中的学生信息。
阅读全文