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 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

原文:http://www.cnblogs.com/pcjim/articles/799302.html

学习mysql中使用inner join,left join 等相关推荐

  1. 认真学习MySQL中的MVCC机制

    什么是MVCC?MVCC(Multiversion Concurrency Control),多版本并发控制.顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制.这项技术使得在Inno ...

  2. 学习 MySQL中导入 导出CSV

    MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码   select * from test_info into outfile '/tmp/test.csv' fields termi ...

  3. mysql 导入导出 csv_学习 MySQL中导入 导出CSV

    Sql代码   select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enc ...

  4. 认真学习MySQL中的角色权限控制

    [1] 权限管理 关于MySQL的权限简单的理解就是MySQL运行你做你权力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允许你从某台机器上连接MySQ ...

  5. 认真学习MySQL中的二进制日志(binlog)与中继日志(Relay log)

    binlog即binary log,二进制日志文件,也叫作变更日志(update log).它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语 ...

  6. MySQL中Join算法实现原理通俗易懂

    注意:MySQL 5.1.18之后的版本中才会体现出来 一:原理: 在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash ...

  7. 中去掉外键_【Java笔记】035天,MySQL中的增删改查

    学习Java的第35天. 今天天除了学习MySQL中的各种约束,MySQL中DML的操作,还有MySQL查询语句ds-- MySQLdz中d的约束有: • 非空约束(not null) • 唯一性约束 ...

  8. mysql 9.0创建数据库_数据库基础学习——MySQL数据库知识小结(9)

    1 MySQL 中的约束 1.1约束类型 • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK ...

  9. MySQL中的外连接

    MySQL中的外连接 外连接是指查询出符合连接条件的数据同时还包含孤儿数据. 一.孤儿数据 孤儿数据是指被连接的列的值为空的数据. 二.左外连接(left outer join) 左外连接包含左表的孤 ...

最新文章

  1. C#为什么多线程控制winform需要用委托?
  2. Tableau必知必会之图表显示部分标签的小妙招
  3. redis watch使用场景_[Redis] 常用类型及应用场景
  4. 简单递归题目分析与解答
  5. java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...
  6. php和mysql处理树状_分级_无限分类_分层数据的方法_PHP和MySQL处理树状、分级、无限分类、分层数据的方法...
  7. ARM系统中断产生流程
  8. 一加9 Pro高清渲染图曝光:后置四摄加持哈苏logo真香
  9. “我花了 5 年时间编写自己的操作系统!”
  10. linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
  11. python基础知识(day3)
  12. 4.卷1(套接字联网API)---基本TCP套接字编程
  13. Android小提示四
  14. 暴风激活工具,劫持Chrome浏览器主页
  15. mysql启动命令 linux命令,linux下mysql 启动命令
  16. 计数器代码php,php 的计数器程序代码示例
  17. 小程序之跨平台黑魔法
  18. HTML5 如何让背景图片自适应浏览器大小
  19. 智能颈部按摩仪设计——2.开发环境搭建
  20. 我的世界超能物质纳米机器人_超能物质复制物品教程(附图) - [MO]超能物质 (Matter Overdrive) - MC百科|最大的Minecraft中文MOD百科...

热门文章

  1. LoadRunner 12.02 安装教程及中文语言包安装
  2. 六核cpu安装SQL Server 2005时报错,提示启动服务失败
  3. CCNA配置试验之七 PPP中PAP和CHAP的验证
  4. 允許Linux的snmp服務被查詢
  5. XSL学习笔记6 XSLT内置模板规则
  6. readn writen实现linux下socket缓冲区读写
  7. HALCON示例程序edge_segments.hdev提取连续的边缘段
  8. 无人驾驶汽车之争本田为何未战先败
  9. 【图像处理】——Python鼠标框选ROI(感兴趣)区域并且保存(含鼠标事件)
  10. ROS环境下跑orb-slam2 单目相机