是否有编写SQL查询的替代方法

时间:2019-11-07 19:19:52

标签: mysql sql

enter image description here

我有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

1 个答案:

答案 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
)