1、左连接
sql语句
select boy.*,girl.* from boy left join girl on boy.id=girl.id;
2、右连接
sql语句:
select boy.*,girl.* from boy right join girl on boy.id=girl.id;
根据效果图,总结:
a left/right join b on 关联条件
其中right/left可以看做 主表的指示词,即left表示左边的表(a)为主表,右边的表(b)为副表
左/右连接,即以主表的关联字段id匹配副表的字段id
如果是一对零关联(1:0),则用null补齐
如果是一对多关联(1:n),根据副表补齐n条数据
特点:
左右关联查询,不进行筛选的表中,数据条数至少是大于等于主表数据条数
副表中的数据,不一定全部会被匹配到
左、右连接可以互换
3、全连接(对于mysql来说是不支持全连接的)
事实上,全连接就是左连接和右连接数据的并集。
可以通过union 实现同样的效果
select boy.*,girl.* from boy right join girl on boy.id=girl.id
union
select boy.*,girl.* from boy left join girl on boy.id=girl.id;
效果如下:
4、内连接
内连接,即左、右连接的交集
sql语句:
select boy.*,girl.* from boy join girl on boy.id=girl.id;