我有 3 张桌子。下面是结构:
student
(id int, name varchar(20)
)course
(course_id int, subject varchar(10)
)student_course
(st_id int, course_id int
) -> 包含注册课程的学生的姓名
现在,我想写一个查询来找出没有注册任何课程的学生。正如我所知道的,有多种方法可以获取此信息。您能否让我知道其中哪一个是最有效的,以及为什么。另外,如果还有其他更好的执行方式,请告诉我。
db2 => select distinct name from student inner join student_course on id not in (select st_id from student_course)
db2 => select name from student minus (select name from student inner join student_course on id=st_id)
db2 => select name from student where id not in (select st_id from student_course)
提前致谢!!