select student.* from student WHERE student.s_name not in( select st.s_name, st.s_id, st.s_birth from teacher t, student st, course c, score sc WHERE st.s_id=sc.s_id AND sc.c_id=c.c_id and c.t_id=t.t_id and t.t_name ="张三")
时间: 2024-02-28 17:54:22 浏览: 131
数据库实验2的实验报告1. 在 studentsdb 数据库中使用 SELECT 语句进行基本查询。 (1)在 student
5星 · 资源好评率100%
这个 SQL 查询语句的意思是从 student 表中选择所有的列,但是只取那些 s_name 不在子查询结果集中的记录。子查询中选择了四个列,而在 not in 中只能选择一个列。因此,你需要修改子查询,只选择 s_name 列,如下所示:
```
select student.* from student WHERE student.s_name not in( select st.s_name from teacher t, student st, course c, score sc WHERE st.s_id=sc.s_id AND sc.c_id=c.c_id and c.t_id=t.t_id and t.t_name ="张三")
```
这样就只在 not in 中选择了一个列,可以正确执行查询语句了。
阅读全文