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 数据类型数据的字段,将会发生错误.

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

SQLl中的left join、right join、inner join详解相关推荐

  1. 对python3中pathlib库的Path类的使用详解

    原文连接   https://www.jb51.net/article/148789.htm 1.调用库 ? 1 from pathlib import 2.创建Path对象 ? 1 2 3 4 5 ...

  2. python3库_对python3中pathlib库的Path类的使用详解

    用了很久的os.path,今天发现竟然还有这么好用的库,记录下来以便使用. 1.调用库 from pathlib import 2.创建Path对象 p = Path('D:/python/1.py' ...

  3. 站长在线Python精讲:在Python中使用正则表达式的split()方法分割字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的split()方法分割字符串详解>. 使用正则表达式分割字符串 在Python中使用正则表达 ...

  4. java中属性文件读取案例_java相关:Spring中属性文件properties的读取与使用详解

    java相关:Spring中属性文件properties的读取与使用详解 发布于 2020-6-3| 复制链接 摘记: Spring中属性文件properties的读取与使用详解实际项目中,通常将一些 ...

  5. JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解

    java 中基本算法之希尔排序的实例详解 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shel ...

  6. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  7. Java中print、printf、println的区别 详解

    Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...

  8. ASP中利用OWC控件实现图表功能详解[zz]

    ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...

  9. python random randint_python中random.randint和random.randrange的区别详解

    在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...

  10. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

最新文章

  1. pywinauto 连接已经打开的程序 如:微信
  2. LeetCode:115. Distinct Subsequences
  3. 汇编语言王爽第二版-课后答案以及解析
  4. 数据库开发——MySQL——foreign key
  5. Java的加载与执行原理详解 Java程序从编写到最终运行经历了哪些过程
  6. asp.net 拦截html,关于c#:如何在-ASPNET-Core-中实现全局异常拦截
  7. zbb20171108 tomcat 性能优化
  8. 第四章 大网高级   NSSA
  9. c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序
  10. html5中的css特性,浅谈HTML5 CSS3的新交互特性
  11. Using Oracle Data Integrator Open Tools
  12. Linux文件编辑命令vi详细说明
  13. 【无标题】水泥稳定层施工
  14. windows2003中了一键还原7.9的招了
  15. [LOJ6515]「雅礼集训 2018 Day10」贪玩蓝月
  16. 灭霸只是开始 看数字王国的虚拟版图
  17. createCaptureSession()
  18. hanLP探索-语义距离计算的实现
  19. Excel中vba 立即窗口使用方法详细介绍
  20. 山东理工大学计算机考研复试分数线,山东理工大学2020考研分数线_山东理工大学2020考研复试分数线 - 考研营...

热门文章

  1. 智能音箱 之 音频通路质量--测试与参数
  2. HALCON示例程序color_segmentation_pizza.hdev披萨肉饼识别。
  3. win7优化设置_win7蓝牙怎么打开?
  4. linux中设置默认权限的命令,Linux默认权限掩码
  5. Linux抓eth0网卡包的命令,Linux系统使用tcpdump命令抓包
  6. Python算法——二叉树
  7. 《Vim实用技巧》阅读笔记 --- 移动及跳转
  8. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事
  9. linux安装nagios客户端
  10. IISExpress Log 文件路径