Table1:学生表(学号,姓名,年龄,性别) Student (s_no, sname, sage, sex) Table2:课程表(课程编号,课程名,任课教师) Course(c_no,cname,t_no) Table3:成绩表(学号,课程编号,成绩) Sc(s_no,c_no,score) Table4:教师表(教师编号,教师姓名) Teacher(t no,tname) 根据要求写出sql语句: 3、查询没有学全全部课的同窗的学号、姓名。
时间: 2023-12-10 12:37:24 浏览: 343
学生表Student-数据库基础
```
SELECT s.s_no, s.sname
FROM Student s
WHERE NOT EXISTS (
SELECT c_no
FROM Course
WHERE NOT EXISTS (
SELECT *
FROM Sc
WHERE s.s_no = Sc.s_no AND Course.c_no = Sc.c_no
)
)
AND s.s_no <> ?
```
其中 `?` 为要排除的学生学号。这个查询语句的意思是找到所有学生,但排除指定学号的学生,然后对于每一个学生,检查是否存在至少一门课程没有学。如果存在这样的课程,则保留该学生。使用 `NOT EXISTS` 子句可以方便地进行这样的检查。
阅读全文