mysql数据库语句左连接_MySQL 左连接 右连接 详解

mysql数据库语句左连接_MySQL 左连接 右连接 详解表A记录如下:aIDaNum1a200501112a200501123a200501134a200501145a20050115表B记录如下:bIDbName12006032401220060324023…

大家好,又见面了,我是你们的朋友全栈君。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133279.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vs2019 注册码_vs2019professional密钥

    vs2019 注册码_vs2019professional密钥VS2019正式版注册码秘钥VisualStudio2019EnterpriseBF8Y8-GN2QH-T84XB-QVY3B-RC4DFVisualStudio2019ProfessionalNYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

  • 图像降采样原理_降采样滤波

    图像降采样原理_降采样滤波转自:http://www.lofter.com/postentry?from=search&permalink=1cb3111d_6ee95871、先说说这两个词的概念: 降采样

  • SpringMVC 中ModelAndView用法

    SpringMVC 中ModelAndView用法ModelAndView作用1.返回到指定的页面ModelAndView构造方法可以指定返回的页面名称   例:returnnewModelAndView("redirect:/m07.jsp");通过setViewName()方法跳转到指定的页面   例:mav.setViewName("hello"); 2.返回参数到指定页面的request作用于中使…

  • windows连接Ubuntu16.10中winscp连接被拒绝「建议收藏」

    windows连接Ubuntu16.10中winscp连接被拒绝「建议收藏」这些天在玩Linux上的一些东西,物理机装了Linux,虚拟机也装了。但是很尴尬,完全从Windows上迁移到Linux上还是需要时间的,比如说今天,虚拟机上就碰到了问题。博主想在Windows上装一个winscp。winscp是一款文件传输工具,可以用来做不同系统之间的文件传输。 因为某些需要,博主的虚拟机网卡设置的是host-only模式,这种模式有一个缺点,也应该不算是缺点,在这种模式

  • 常微分方程初值问题数值解法MATLAB(泛函微分方程)

    Matlab解常微分方程的初值问题题目:Matlab解常微分方程的初值问题设计目的:1、熟练掌握Matlab的基本编程方法,及其编程风格。2、熟练掌握Matlab常用函数的使用。3、与本专业相关知识相结合,掌握其在程序开发中的应用方法以及和word、C语言等接口方法。4、通过计算机数值求解的方式来加深微分方程解的理解。5、熟悉初等方法可获得解析解之外的数值近似解的求解方法,提高对差分格式的认识…

  • array去重 java_java 数组去重[通俗易懂]

    array去重 java_java 数组去重[通俗易懂]uniq.javaimportjava.util.Arrays;importjava.util.ArrayList;importjava.util.List;publicclassuniq{publicstaticvoidmain(String[]args){ArrayListoList=newArrayList<>(Arrays.asList(newOb…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号