【发布时间】:2014-06-06 13:03:48
【问题描述】:
如何连接表以选择连接表中不存在的记录。 例如。我有一个表格文件、学生、文件夹
我正在开发学生支付系统,因此我想选择某个学期没有支付的学生
1.table学生和文档可以在student.student_id加入
2.Table 文件夹存储学期它可以与文件夹中的文档连接。folder_id
【问题讨论】:
-
或者你可以用谷歌搜索“加入 sql 表以选择不存在的记录。”
如何连接表以选择连接表中不存在的记录。 例如。我有一个表格文件、学生、文件夹
我正在开发学生支付系统,因此我想选择某个学期没有支付的学生
1.table学生和文档可以在student.student_id加入
2.Table 文件夹存储学期它可以与文件夹中的文档连接。folder_id
【问题讨论】:
文档表中不存在的所有学生:
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
【讨论】:
使用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
【讨论】: