假设有一个包含3个表的关系数据库:
Courses {name, id},
Students {name, id},
Student_Course {student_id, course_id}
Run Code Online (Sandbox Code Playgroud)
我想写一个SQL,它给了我不存在的学生课程对.如果这不可行,至少知道是否缺少对是很好的.
此外,由于这是一个较大问题的一小部分,我想自动化,看到许多不同的方法,这将是有用的.
1找到所有对,然后删除对存在(由left join/not null或not exists)
select s.id as student_id, c.id as course_id
from Courses as c
cross join Students as s
left join Student_Course as sc on sc.student_id = s.id and sc.course_id = c.id
where sc.course_id is null -- any sc field defined as "not null"
Run Code Online (Sandbox Code Playgroud)