如何连接表以选择连接表中不存在的记录。 例如。我有一个表格文件,学生,文件夹
我正在开发学生支付系统,因此我想选择在某个学期尚未付款的学生
1.Table学生和文件可以在student.student_id
加入2.Table文件夹存储学期可以与folder.folder_id
中的文档连接答案 0 :(得分:2)
文件表中不存在的所有学生:
select
students.*
from
students
left join
documents on documents.student_id = students.student_id
where
documents.document_id is null
为了选择学期,它有点棘手,但它有相同的逻辑:
select
students.*
from
students
left join
(
select documents.* from documents
inner join folders on folders.folder_id = documents.folder_id
where folders.folder_id = 3
) as t1 on t1.student_id = students.student_id
where
t1.document_id is null
您可以查看/阅读此Visual Representation of SQL Joins
答案 1 :(得分:2)
使用LEFT JOIN
构造,并查找您想要丢失的表格中包含NULL数据的行。
对于您的特定示例,例如:
SELECT Student.Student_id
FROM Student
LEFT JOIN Documents ON Student.Student_id = Documents.Student_id
WHERE Documents.Student_id IS NULL