[1] 示例数据
用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接)。
a_table:
b_table:
[2] 内连接(取两表交集)
查询语句:
select * from a_table a inner join b_table b on a.a_id = b.b_id;
查询结果:
[3] 左连接(先查左边表所有数据,然后按on条件拼接)
查询语句:
select * from a_table a left join b_table b on a.a_id = b.b_id;
查询结果:
[4] 右连接(先查右边表所有数据,然后按on条件拼接)
查询语句:
select * from a_table a right join b_table b on a.a_id = b.b_id;
查询结果:
[5] 总结
如果是左连接,就先把左边表的所有数据都查出来,然后以on后面的条件去右边表中搜索,匹配的就拼接到刚刚查询出的数据上,没有匹配的,就为NULL;
如果是右连接,就先把右边表的所有数据都查出来,然后以on后面的条件去左边表中搜索,匹配的就拼接到刚刚查询出的数据上,没有匹配的,就为NULL;