有关MySQL查询语句中“Jion”的有关用法(初学者的小经验)

前言

在说Join之前,先要了解Join这个关键字的意思,就和它的字面意思一样——“连接”,就是把两张表连接起来,我们在初学MySQL进行查询时,肯定都知道了“内连接”——“inner join”和外连接——“left outer join”和“right outer join”,但有些人就像我一样,一开始不知道这些语句是怎么处理数据的,有时候在做查询的时候很迷茫,不知道怎么使用,那么我就有必要知道它的处理方式,那么它是以怎样一种方式处理两张表的呢?在说上面的几个复杂查询关键字之前,先了解一下在用“join”时,两个表发生了什么。

1.每一次“join”都在做“笛卡尔积”

**笛卡尔积**在这个里我们可以看到,”join“这个关键字在执行的时候做了图中的事,即把学生表的每个记录和课程表每个记录匹配,相当于做了一次”m*n”的“笛卡尔积”,这才是所有join语句的开始,之后的内连接和外连接在处理表的时候都先进行了这样一次表处理。

2.“inner join”

在这里插入图片描述
有了上面的基础,我们来看内连接“inner join”,从笛卡尔积的角度来说就是做了一次交集,即在经过笛卡尔积后的表基础上根据”on“后面的条件,将符合”on“的数据留下

3. “outer join”

很多人看到“outer join”可能有点蒙,我们在MySQL里没有单独使用过“outer join”,但是我们用过“left outer join”和“right outer join”,MySQL没有支持使用”outer join“,但是可以使用“left outer join”和“right outer join”,那么在搞清楚“left outer join”和“right outer join”之前就需要搞清楚”outer join“
在这里插入图片描述这里可以看到“outer join”是求了并集,即把符合“on”条件的数据和两个表剩下的数据都留了下来

4.“left outer join”

在这里插入图片描述
“left outer join”就等于把笛卡尔积后的表,根据“on”的条件,将符合条件的数据留下,也将不符合条件的左表数据留下了,并将右表数据设为“null”值。

5.“right outer join”

在这里插入图片描述“right outer join”和“left outer join”很像,也是把笛卡尔积后的表,根据“on”的条件,将符合条件的数据留下,也将不符合条件的右表数据留下了,并将左表数据设为“null”值。

以上就是我在学习join时候的一些经验,本人初学,如果有错欢迎大佬在下评论指出不足之处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值