关联的分类
sql关联大致分为以下几类:
- 左关联 (left join)
返回左表中的全部记录和右表中满足关联条件的记录 - 右关联 (right join )
返回右表的全部记录和左表中满足关联条件的记录 - 全关联 (cross join )
会产生笛卡尔积,将左表中的每一条数据和右表中全部记录进行联结 - 自关联 (inner join )
返回左表和右表同时满足关联条件的记录
示例
现在有学生(student)、班级(class)、成绩(score)四张表,如下:
left join
左关联取学生所在的班级信息
right join
右关联和右关联类似,对主表的位置做了调整。左关联主表在左,右关联主表在右
inner join
等值关联,例如 a inner join b on a.id=b.id ;只会返回同时满足关联条件(a.id=b.id)的a表和b表中记录