首页 > 解决方案 > 从不相关的表中获取数据

问题描述

我有这个数据库'SCHOOL'的作业

数据库中还有其他一些表和列,但我认为它们对这个查询并不重要。

我需要获取没有学生注册的班级的老师的姓名。假设没有人报名参加数学课,我需要获取该数学课老师的姓名。

SELECT Teacher.Name, Teacher.Surname, Class.ClassName
FROM Teacher
INNER JOIN Class ON Class.TeacherID = Teacher.TeacherID
INNER JOIN Application ON Application.ClassID = Class.ClassID
INNER JOIN Student ON Student.StudentID = Application.StudentID
WHERE Application.PredmetID IS NULL

帮助将不胜感激。

标签: sqlsql-server

解决方案


我会推荐NOT EXISTS

select t.name
from class c join
     teacher t
     on t.teacherid = c.teacherid
where not exists (select 1
                  from application a
                  where a.classid = c.classid
                 );

推荐阅读