sql左右连接通俗易懂讲解

时间:2024-10-18 20:17:24

对新人来说,有些容易混淆却又是新东西的时候,往往第一印象没有深深的扎根之后,以后就会经常混淆,比如sql的左右内连接问题,有些人老是分不清到底是左还是右还是用内连接。再次本人将用通俗易懂的方法分享给大家容易记住的东西。

例子: a表 id name b表 id job parent_id 1 张3 1 23 1 2 李四 2 34 2 3 王武 3 34 4

这里,可以看到a,b两张表是通过主外键id,parent_id关联的。

a表,id有1,2,3

b表,parent_id就是对应a表的id 有1,2,4

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

总结:aleft 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 rightjoin 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代替。

© 手抄报圈