mysql左连接查询举例_mysql左右连接查询(有示例图)

mysql左连接查询举例_mysql左右连接查询(有示例图)小小的连接查询,其实里面有很多学问,今天我就来简单剖析一下。左连接,右连接,内连接的本质:将两个表的数据依据一定条件横向连接起来。给出建表语句:————————————————–createtabletest1(idint,namevarchar(10))createtabletest2(idint,namevarc…

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

小小的连接查询,其实里面有很多学问,今天我就来简单剖析一下。

左连接,右连接,内连接的本质:将两个表的数据依据一定条件横向连接起来。

给出建表语句:

————————————————–

create table test1(

id int,

name varchar(10)

)

create table test2(

id int,

name varchar(10)

)

INSERT INTO `test1` VALUES (1,’2′);

INSERT INTO `test1` VALUES (1,’2′);

INSERT INTO `test1` VALUES (2,’1′);

INSERT INTO `test1` VALUES (2,’2′);

INSERT INTO `test1` VALUES (3,’1′);

INSERT INTO `test2` VALUES (1,’2′);

INSERT INTO `test2` VALUES (2,’1′);

INSERT INTO `test2` VALUES (2,’2′);

————————————————–

左连接sql:select * from  test1 a left join test2 b on a.id=b.id

如下为左连接示例图:

0818b9ca8b590ca3270a3433284dd417.png

1,理解左连接查询方式(以两表id相等作为on的条件):

先将左表数据查出,然后根据on后面的条件,将右表中凡是id与左表id相等的记录都查出来,与匹配的左表记录依次排成一行或多行,若无匹配的记录,则显示null。

举例:select * from  test1 a left join test2 b on a.id=b.id

说明:先将左表数据查出,然后根据on后面的条件,将右表中凡是id与左表id相等的记录都查出来,与匹配的左表记录依次排成一行或多行,若无匹配的记录,则显示null。

在本例中,我画了6根线,每条线都表示了一条查询结果记录。

当ID为1时:左表有2条ID为1的记录,右表有1条。先查左表的第一条,然后再查询右表中所有ID与左表第一条记录的ID相等(即ID为1)的记录,因右表只有1条记录的ID为1,因此得出查询结果的第一条记录:1,2,1,1。

第二条记录查询方式也同上。

当ID为2时:左右表各有2条ID为2的记录。也是同上,当查左表第一条ID为2的记录时,因右表中有2条ID为2的记录,因此查询结果会有两条,即左表的1条记录会和右表的2条记录一一配对。

第二条记录查询方式也同上。

对于id为3的记录,因右表没有ID为3的记录,因此右边显示为null。

————————————————–

2,理解了左连接之后,右连接也就不难了。

右连接语句:select * from  test1 a right join test2 b on a.id=b.id

右连接查询结果:

0818b9ca8b590ca3270a3433284dd417.png

————————————————–

3,而内连接,则是把ID只存在于某一个表中的记录给过滤了。

以下3条sql语句等价:

select * from  test1 a  join test2 b on a.id=b.id

select * from  test1 a inner join test2 b on a.id=b.id

select * from  test1 a , test2 b where a.id=b.id

内连接查询结果:

0818b9ca8b590ca3270a3433284dd417.png

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

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

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

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

(0)
blank

相关推荐

  • qt显示视频的控件_qt 控件

    qt显示视频的控件_qt 控件一、前言在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持gif动图,一般一个5秒左右的gif,800*600分辨率,可以很好的控制在500KB内,这样就比较完美的支持各大网站上传动图。最开始使用的是ScreenGif.exe,用了很久…

  • 太极阳必须要root吗_root手机教程

    太极阳必须要root吗_root手机教程以前的root基本是suroot,但是su不再维护更新之后,就有了现在的比su更好玩的root手机的工具→magisk。Magisk具备很强大的模块扩展,可以不修改system区的文件,达到修改system文件一样的效果,例如换字体,换主题,换卡机界面,换gpu驱动等等。现在就来一个面具的刷入教程。1.一台可以解锁BL的手机(可以查看公众号的历史信息,刷机教程)2.给机器刷入第三方Re…

  • git pull 合并分支或者push时,报错:“Please enter a commit messagemerge is necessary,especi”的解决办法(亲测可行)

    git pull 合并分支或者push时,报错:“Please enter a commit messagemerge is necessary,especi”的解决办法(亲测可行)

  • 深度学习—2.常见的神经网络结构

    深度学习—2.常见的神经网络结构

  • VBA编程基础和编程环境(二)

    VBA编程基础和编程环境(二)    上一节中认识了Excel宏的基本样子,明白了VBA就是一门类似于C、JAVA、Python等编程语言,了解了VBA与宏的关系,本节开始学习VBA编程的基础知识和编程环境,是整个学习编程的基础。    一、VBA编程的几个重要概念    0、过程    把VBA代码按照一定顺序和逻辑排列用来完成Excel某个任务的过程,其实就是用VBA代码按照先后…

  • java找不着符号_找不到符号:Java

    java找不着符号_找不到符号:Java如果这是一个怪异的问题,我感到很抱歉,但是我刚刚开始OOP,并遇到了一个我应该制作的简单菜单驱动数学程序。我清除了编译器给我的所有错误,但是现在它给了我大约14个新错误,其中大多数被描述为“找不到符号”。这是我的代码:importjava.util.Scanner;publicclassMathMenu{//MENUMETHODprivatestaticvoidmenu(String…

发表回复

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

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