示例:
如下a,b两张表是通过主外键id,parent_id关联的:
a表:
b表:
1、内连接语句
select a.*,b.* from a inner join b on a.id=b.parent_id
查询结果:
1 张3 1 23 1 2 李四 2 34 2
总结:内连接其实就是把两张表相同的东西,也就是说都有的东西相匹配。
2、左连接语句
select a.*,b.* from a left join b on a.id=b.parent_id查询结果 :
1 张3 1 23 1 2 李四 2 34 2 3 王武 null
总结:a left join b 我们可以这里理解a在b的左边,就是说以a(left那个为主)为主,a中的满足条件的全部显示,在b中没匹配的全部用null代替。
3、右连接语句
select a.*,b.* from a right join b on a.id=b.parent_id查询结果 :
1 张3 1 23 1 2 李四 2 34 2 null 3 34 4
总结:与左连接正好相反。a right join b 我们可以这里理解a在b的右边,就是说以b(right那个为主)为主,b中的满足条件的全部显示,在a中没匹配的全部用null代替。
4、全连接语句
select a.*,b.* from a full join b on a.id=b.parent_id查询结果 :
1 张3 1 23 1 2 李四 2 34 2 null 3 34 4 3 王武 null
总结:这个可以理解成左右连接的综合。所有满足条件的记录全部显示,对应表中没有的全部用null代替。