我有3个表-班级表,学生表,学生班表
在这些表格的帮助下,我需要编写一个查询来告诉我们尚未参加任何课程的学生
我编写了一个有效的查询,但我想知道是否存在另一种且更简单的编写查询以获取所需结果的方法
SELECT s.studentName, c.className
FROM student s
LEFT JOIN studentClass sc
ON sc.studentId = s.studentId
LEFT JOIN classes c
ON sc.classId = c.classId
WHERE c.className IS NULL
答案 0 :(得分:2)
只需检查学生的ID在studentclass
中是否存在。
使用NOT IN:
select *
from student
where studentid not in (select studentid from studentclass)
或不存在:
select s.*
from student s
where not exists (
select 1 from studentclass
where studentid = s.studentid
)