cross join 一张表没有值关联不出来数据_你是否还在对left join、right join和join有困扰呢?...

说到SQL,很多人可能用了挺久,但依然有个问题一直困扰着,那就是 left join、 join、 right join和 inner join等等各种 join的区别。网上搜,最常见的就是一张图解图,如下:

8e60f260a35c86fa452bcaf39ad9e7a3.png

接下来就来实际自己动手实验,彻底搞懂图中的含义。

首先,先来建两张表,第一张表命名为 kemu,第二张表命名为 score:

5af3dff27049628e4567e8ec43d0e7c8.png
4754ff86893a18265b2a25f6152fc05b.png

left join

顾名思义,就是“左连接”,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下:

select   *from   kemuleft join score on kemu.id = score.id

结果集:

38282ca1d82a99dc58e18de1422277e6.png
fdbda57d402e3bd7f46694f8be959467.png

right join

“右连接”,表1右连接表2,以右为主,表示以表2为主,关联查询表1的数据,查出表2所有数据以及表1和表2有交集的数据,如下:

select   *from   kemuright join score on kemu.id = score.id

结果集:

262b408635ed709e23b0467dd1c8cad0.png
db1310280993c850e3dbd60f18d847d3.png

join(inner join)

join,其实就是“inner join”,为了简写才写成join,两个是表示一个的,内连接,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来,这个用的情况也是挺多的,如下

select   *from   kemujoin score on kemu.id = score.id

结果集:

0d7070a97958de22d593a57d2acc24d3.png
822144efd7626feed508e01c4f8a20b3.png

以后对于这三者应该再也不模糊了吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: A. INNER JOIN B. LEFT OUTER JOIN C. CROSS JOIN D. RIGHT JOIN 这四种方式是多查询的常用连接方式。 - INNER JOIN: 又称内连接,只返回两个中有匹配的行。 - LEFT OUTER JOIN: 又称左外连接,返回左中的所有行,右中有匹配的行将被返回,没有匹配的将返回NULL。 - CROSS JOIN: 又称笛卡尔积,返回左中的每一行和右中的每一行的组合。 - RIGHT JOIN: 又称右外连接,与LEFT OUTER JOIN相反,返回右中的所有行,左中有匹配的行将被返回,没有匹配的将返回NULL。 ### 回答2: 多查询可以使用以下几种连接方式: A. INNER JOIN(内连接):根据两个或多个中的共同字段进行连接,只返回存在匹配关系的记录。 B. LEFT OUTER JOIN(左连接):将左中的所有记录和右中匹配的记录进行连接,在右没有匹配的记录,将会返回NULL。 C. CROSS JOIN(交叉连接):将两个的记录进行笛卡尔积,返回所有可能的组合。 D. RIGHT JOIN(右连接):将右中的所有记录和左中匹配的记录进行连接,在左没有匹配的记录,将会返回NULL。 以上是常用的多查询连接方式,根据不同的业务需求选择合适的连接方式,来获取需要的数据。 ### 回答3: 多查询主要有四种连接方式,分别是INNER JOIN(内连接)、LEFT OUTER JOIN(左外连接)、CROSS JOIN(交叉连接)和RIGHT JOIN(右外连接)。 INNER JOIN是多连接中最常用的方式之一,它会根据两个之间的共同列将数据进行匹配,只返回满足条件的行。 LEFT OUTER JOIN以左边的为主,将其所有记录和右边中匹配的记录放在一起,如果右没有匹配的记录,用NULL填充。 CROSS JOIN会将两个的所有记录进行笛卡尔积运算,返回的结果是两个的行数相乘。 RIGHT JOINLEFT JOIN相反,以右边的为主,将其所有记录和左边中匹配的记录放在一起,如果左没有匹配的记录,用NULL填充。 这四种连接方式都可以在多查询中使用,根据不同的需求选择合适的方式来进行数据关联和查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值