码迷,mamicode.com
首页 > 数据库 > 详细

SQL——左连接(Left join)右连接(Right join)内连接(Inner join)

时间:2018-10-25 19:42:21      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:图解   很多   简单   外连接   理解   image   表连接   需求   连接   

概念(定义)

?首先还是介绍一下这三个的定义

?Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。

?Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。?

?Inner join:即内连接,同时将两表作为参考对象,根据ON后给出的两表的条件将两表连接起来。结果则是两表同时满足ON后的条件的部分才会列出。

MySQL中没有全外连接,所以这里没做解释了。?

举 个 栗 子

?光看概念肯定看得迷迷糊糊的,所以举个栗子让这个概念更加深入。

?假如,我有两个表A和B:

A表

技术分享图片

 

B表

技术分享图片

 

=======我========是========分=======割========线======?=

 

Left join

?SQL语句:?SELECT * FROM A LEFT JOIN B ON A.id=B.id

结果?:

技术分享图片

 

 

Right join

SQL语句:SELECT * FROM A RIGHT JOIN B ON A.id=B.id?

结果:

技术分享图片

 

Inner join

SQL语句:SELECT * FROM A INNER JOIN B ON A.id=B.id

结果:

技术分享图片

 

集合思维理解

根据上面的栗子,看起来是不是清晰明了多了,而且也更有对比性了。如果还是觉得只是这会儿懂了,但是用起来还是觉得有?点难的话,就下面这种集合思维,大头也是最近才发现,这样想的话就会简单很多了。

?我们有两个表:A和B,那么就分别将其当做一个集合

?那么我们的左右外连接和内连接就相当于变成了这样↓ ↓ ↓

A Left join B -> A (根据返回需求 需连接上B中与A等条件的部分)

A Right join B -> B (根据返回需求 需连接上A中与B等条件的部分)

A Inner join B -> A∩B? (根据返回需求 需连接上A与B等条件的部分)

图解就是这样↓ ↓ ↓

技术分享图片

 

SQL——左连接(Left join)右连接(Right join)内连接(Inner join)

标签:图解   很多   简单   外连接   理解   image   表连接   需求   连接   

原文地址:https://www.cnblogs.com/shenhaha520/p/9851700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!