左外连接与右外连接区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了左外连接与右外连接区别?相关的知识,希望对你有一定的参考价值。
左外连接,符合where条件筛选后的左表数据全部显示,右表只显示与左表相关联的数据,不存在的列用null填充。右外连接,符合where条件筛选后的右表数据全部显示,左表只显示与右表相关联的数据,不存在的列用null填充。 参考技术A 个人理解:
左外连接,就是符合左边表的条件就拉出来.同理右外连接.
因为有时候左右2边的表数据不一致,比如左边有,右边没,
那用左连接就会把左边的都拉出来,右边的如果符合条件也拉出来,
大概就是这样吧.
具体要自己多去练习才有体会
左外连接右外连接内连接全连接的概念
左外连接 LEFT JOIN 或 LEFT OUTER JOIN
结果集包括:左表中所有的行,右表中满足关联条件的行,如果左表中某一行在右表中没有匹配行,右表中对应的列值在结果集中为空
右外连接 RIGHT JOIN 或 RIGHT OUTER JOIN
刚好和左外连接相反
内连接 INNER JOIN
结果集只列出关联表中满足关联条件的行
全连接 FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
例子:
-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
--------------------------------------------------
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
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
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
以上是关于左外连接与右外连接区别?的主要内容,如果未能解决你的问题,请参考以下文章