一、什么是反连接(anti join)
反连接(anti join)是一种特殊类型的连接,它返回两个表中没有匹配的记录。换句话说,它会返回第一个表中存在但在第二个表中不存在的记录。在SQL中,可以使用`LEFT JOIN`和`IS NULL`来实现anti join。
二、反连接(anti join)的用法
下面通过一个查询为大家讲解anti join的用法
表1:学籍信息
表2:部分学生成绩表
需求:查询出没有参加考试的学生信息
select x.*
from 学籍信息 as x
left join 部分学生成绩 as y
on x.学号 = y.学号
where y.学号 is null;
以上SQL使用左连接(left join)通过连接键“学号”将“学籍信息表”和“部分学生成绩表”进行了连接,查询结果返回左表全部信息和右表相匹配的记录,右表没有匹配的字段在结果集上以null的形式展现,我们通过where条件过滤从左表中选择所有不满足右表连接条件的记录。
可以看到以上查询结果中的学生是没有参加考试的