left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行

举例如下: 
--------------------------------------------
表A记录如下:
aID     aNum
1     a20050111
2     a20050112
3     a20050113
4     a20050114
5     a20050115

表B记录如下:
bID     bName
1     2006032401
2     2006032402
3     2006032403
4     2006032404
8     2006032408

--------------------------------------------
1.left join
sql语句如下: 
select * from A
left join B 
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
5     a20050115    NULL     NULL

(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
--------------------------------------------
2.right join
sql语句如下: 
select * from A
right join B 
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404
NULL     NULL     8     2006032408

(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
--------------------------------------------
3.inner join
sql语句如下: 
select * from A
innerjoin B 
on A.aID = B.bID

结果如下:
aID     aNum     bID     bName
1     a20050111    1     2006032401
2     a20050112    2     2006032402
3     a20050113    3     2006032403
4     a20050114    4     2006032404

结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
--------------------------------------------
注: 
LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2

说明:table1, table2参数用于指定要将记录组合的表的名称。
field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。
如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.

转载于:https://www.cnblogs.com/TuringYu/p/6234702.html

Mysql中eft join、right join、inner join的区别相关推荐

  1. mysql中双引号和单引号有什么区别

    mysql中双引号和单引号有什么区别 前2天看到有人问,mysql中双引号和单引号有什么区别? 希望大家可以关注下公众号,支持一下,鞠躬感谢~ 我就直接po代码和截图了,如下 select * fro ...

  2. mysql 中 RC、RR隔离级别的原理及区别

    今天分享 mysql 中 RC.RR隔离级别的原理及区别: 1.首先简介mysql四种隔离级别: 1)未提交读(READ UNCOMMITED)脏读 2) 已提交读 (READ COMMITED)简称 ...

  3. mysql中nchar_浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

    1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度,存储ANSI字 ...

  4. mysql中时间类型datetime,timestamp与int的区别

    在mysql中存储时间,我们可以用datetime 格式,timestamp格式,也可以用int格式.那么我们设计的时候该如何考虑呢? 首先,我觉得应该明白这几个格式究竟是如何的,然后看看他们的区别, ...

  5. mysql中的BIT_LENGTH和LENGTH以及CHAR_LENGTH的区别

    mysql中获取字符的长度的常见函数有以上三种,他们的区别在于衡量长度的单位是不同的. 目录 背景描述 mysql中长度函数描述 使用案例 背景描述 ASCII码 因为计算机是美国人发明和最早使用的, ...

  6. MySQL中 int(11)和int(10)有没有区别

    引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了.直到有一次有个同学又跟我谈起这个事,才去查了以下 ...

  7. 面试官:说说MySQL中IN和OR的查询效率和区别

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 推荐:https://www.xttblog.com/?p=5257 前言 很多 ...

  8. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

    2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...

  9. mysql中char,varchar与text类型的区别和选用

    关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar.但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道...... text .  ...

  10. mysql中count(*)和count(1)和count(column)区别

    在日常的mysql使用中,我们经常会看到SELECT COUNT(*).SELECT COUNT(1)等查询语句,他们到底有什么区别呢?今天我就来总结下. 我们先从函数的含义说起: count() 统 ...

最新文章

  1. wampserver使用过程中遇到的问题及相关配置
  2. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】
  3. 扩容是元素还是数组_02 数组(附ArrayList源码分析)
  4. Scala特质的动态混入(超强扩展性)
  5. linux sh-3.2 怎么开机,linux 开机执行脚本文件
  6. 导入项目到IDEA报javax/xml/bind/DatatypeConverter错误?
  7. 深度学习中激活函数的优缺点
  8. Tensorflow:模型保存和服务
  9. ndows 内存诊断工具,Windows自带内存诊断工具来帮你检测电脑内存的稳定
  10. wxWindows 2
  11. Chrome 页面呈现原理与性能优化之企业级分享总结(内附完整ppt)
  12. 发动机启动计算机,不自检直接启动伤车?看完发动机电脑自检原理你就明白了...
  13. 工作之余如何高效学习
  14. 吴恩达深度学习课程笔记(初步认识神经网络)
  15. vue路由报错Navigating to current location (“/login“) is not allowed踩坑总结
  16. c语言循环语句学习心得
  17. html倒计时代码+微信可用,微信页面倒计时代码(解决safari不兼容date的问题)
  18. steam游戏搬砖项目,不错的副业选择
  19. 利用 队列 来实现医院挂号模拟看病系统(c++,顺序及链式)
  20. Mysql 数据库 -------- SQL语句进阶查询 ------- 后部分

热门文章

  1. VPP 20.09版本正式发布
  2. 深入解读Linux进程调度系列(5)——调度的入口
  3. FFmpeg滤镜代码级分析
  4. 流媒体基本要点简述:如何在H264数据中获取PTS?
  5. deepin允许root登录_王者荣耀安卓免ROOT不用电脑修改战区2020最新版教程
  6. 数论基础——欧拉函数(一)(模板)
  7. mac vscode配置c++ debug环境
  8. centos 7.6镜像_Centos7 配置本地yum源为iso镜像
  9. Linux 部分命令无法使用-bash: /usr/bin/*: Permission denied
  10. cssrem转换工具_微信小程序开发-rem转换rpx小工具