1. 假设有AB两个表。
  2.  
  3. A记录如下:
  4. aID aNum
  5. 1 a20050111
  6. 2 a20050112
  7. 3 a20050113
  8. 4 a20050114
  9. 5 a20050115
  10.  
  11. B记录如下:
  12. bID bName
  13. 1 2006032401
  14. 2 2006032402
  15. 3 2006032403
  16. 4 2006032404
  17. 8 2006032408
  18.  
  19. --------------------------------------------
  20. 1.left join
  21. sql语句如下:
  22. select * from A
  23. left join B
  24. on A.aID = B.bID
  25.  
  26. 结果如下:
  27. aID aNum bID bName
  28. 1 a20050111 1 2006032401
  29. 2 a20050112 2 2006032402
  30. 3 a20050113 3 2006032403
  31. 4 a20050114 4 2006032404
  32. 5 a20050115 NULL NULL
  33.  
  34. (所影响的行数为 5 行)
  35. 结果说明:
  36. left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
  37. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
  38. B表记录不足的地方均为NULL.
  39. --------------------------------------------
  40. 2.right join
  41. sql语句如下:
  42. select * from A
  43. right join B
  44. on A.aID = B.bID
  45.  
  46. 结果如下:
  47. aID aNum bID bName
  48. 1 a20050111 1 2006032401
  49. 2 a20050112 2 2006032402
  50. 3 a20050113 3 2006032403
  51. 4 a20050114 4 2006032404
  52. NULL NULL 8 2006032408
  53.  
  54. (所影响的行数为 5 行)
  55. 结果说明:
  56. 仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
  57. --------------------------------------------
  58. 3.inner join
  59. sql语句如下:
  60. select * from A
  61. innerjoin B
  62. on A.aID = B.bID
  63.  
  64. 结果如下:
  65. aID aNum bID bName
  66. 1 a20050111 1 2006032401
  67. 2 a20050112 2 2006032402
  68. 3 a20050113 3 2006032403
  69. 4 a20050114 4 2006032404
  70.  
  71. 结果说明:
  72. 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
  73. --------------------------------------------
  74. PS:
  75. LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
  76.  
  77. 语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
  78.  
  79. 说明:table1, table2参数用于指定要将记录组合的表的名称。
  80. field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
  81. compopr参数指定关系比较运算符:"=" "<" ">" "<=" ">=" "<>"
  82. 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误
  83.  
  84. 注:leftright是外连接,Inner是内连接。

小例子理解SQL的左连接与右连接的更多相关文章

  1. SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)

    SQL 连接 JOIN 例解.(左连接,右连接,全连接,内连接,交叉连接,自连接) 最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想-现在在这写写关于它们的作用假设有 ...

  2. sql左连接,右连接,内连接

    1.sql查询时什么叫左连接和右连接    左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少.    左或 ...

  3. Linq 和 SQL的左连接、右连接、内链接

    在我们工作中表连接是很常用的,但常用的有这三种连接方式:左连接.右连接.内链接 在本章节中讲的是1.如何在Linq中使用左连接,右连接,内连接. 2.三种连接之间的特点在哪? 3.Linq的三种连接语 ...

  4. SQL中的左连接与右连接,内连接有什么不同

    SQL中的左连接与右连接,内连接有什么不同 我们来举个例子.天庭上面有一个管理系统:管理系统有个主表:主表记录着各个神仙的基本信息(我们把它当成表A).还有个表记录着他们这个神仙的详细信息(我们把它当 ...

  5. SQL&&LINQ:左(外)连接,右(外)连接,内连接,完全连接,交叉连接,多对多连接

    SQL: 外连接和内连接: 左连接或左外连接:包含左边的表的所有行,如果右边表中的某行没有匹配,该行内容为空(NULL) --outer jion:left join or left outer jo ...

  6. SQL Server中的连接查询【内连接,左连接,右连接,。。。】

    在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...

  7. Sql中的内连接,左连接以及右连接区别

    转自:http://pangaoyuan.javaeye.com/blog/713177 有两个表A和表B. 表A结构如下: Aid:int:标识种子,主键,自增ID Aname:varchar 数据 ...

  8. sql语句中的join连接(左连接、右连接、全连接、内连接)

    内部连接(inner join): select * from d_user a inner join D_ORGANIZATION b on a.COMPANY_XID=b.ID  内部链接也是排他 ...

  9. 最常用SQL joins:内连接(交集)、左外连接、右外连接、左连接、右连接、全连接(并集),全外连接

    1.内连接.两个表的公共部分用Inner join,Inner join是交集的部分. Select * from TableA A inner join TableB B on A.key=B.ke ...

随机推荐

  1. 利用GUID唯一标识符并设置它的过期时间

    项目中遇到一个小问题,就是把服务器创建的GUID发送给客户端,客户端接收后,下次访问时带上这个GUID, 服务端这边就进行验证,并做相应的处理. 问题是:项目中还需要这个GUID带过期时间,那是如何设 ...

  2. css居中方法与双飞翼布局

    居中 类型 方法 对应属性 水平 垂直 水平&垂直 1.父元素使用外边距自动 2.子元素显示行内块级元素,写入内容,父元素设置文本居中 3.给父元素开启非绝对和固定定位作为子元素开启绝对定位的 ...

  3. 构建企业级Nginx+Keepalived集群架构

    随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx. Nginx高性能.稳定性成为IT人士青睐的http和反向代理服务器,今天我们来实战构建Nginx+Keepalived高可用架 ...

  4. Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程

    一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...

  5. 想玩 BGP 路由器么?用 CentOS 做一个

    在之前的教程中,我对如何简单地使用Quagga把CentOS系统变成一个不折不扣地OSPF路由器做了一些介绍.Quagga是一个开源路由软件套件.在这个教程中,我将会重点讲讲如何把一个Linux系统变 ...

  6. [Poj3128]Leonardo's Notebook

    [Poj3128]Leonardo's Notebook 标签: 置换 题目链接 题意 给你一个置换\(B\),让你判断是否有一个置换\(A\)使得\(B=A^2\). 题解 置换可以写成循环的形式, ...

  7. 使用单元素的枚举类型实现Singleton

    从java1.5版本开始,实现singleton出现了第三种方式: public enum SingleTon { INSTANCE; public void speak() { System.out ...

  8. Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)

    使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...

  9. Invoke 与 BeginInvoke 应用场景

    1.委托中 Invoke , BeginInvoke 特点 Invoke  : 同步调用 , 委托在当前线程执行 BeginInvoke : 异步调用 , 通常使用线程池资源执行委托. 2. UI  ...

  10. 《android开发艺术探索》读书笔记(十二)--Bitmap的加载和Cache

    接上篇<android开发艺术探索>读书笔记(十一)--Android的线程和线程池 No1: 目前比较常用的缓存策略是LruCache和DiskLruCache,LruCache常被用作 ...