mysl中的左连接(left join)和右连接(right join)用法

一、什么是左连接(left join)和右连接(right join)

在MYSQL数据库中,根据连接时要提取的是那个表的全部记录,外连接可以分为左外连接(LEFT  JOIN)和右外连接(RIGHT  JOIN)两种类型 。

- 左外连接(LEFT  JOIN):返回左表的全部记录,即使右表中没有匹配的记录。如果没有匹配的右表记录,则结果集中右表的字段将为NULL。


- 右外连接(RIGHT  JOIN):返回右表的全部记录,即使左表中没有匹配的记录。如果没有匹配的左表记录,则结果集中左表的字段将为NULL。
 

二、左连接(left join)和右连接(right join)的用法

下面通过2个查询示例,讲解左连接(left join)和右连接(right join)在查询中的使用场景。

表1:学生信息登记表

bbe5eefaf5a948ebb3c0067da689ee0f.png

表2:部分学生考试成绩表

1b46010dfe8e40c3b812e7a253bef5a6.png

1.左连接(left join)

我们使用左连接(left join)通过连接键“学号”将“学生信息登记表”和“部分学生考试成绩表”进行连接,最后输出查询结果。

#使用左连接,将“学生信息表”和“部分学生成绩表”进行连接,输出查询结果
select *
from 学籍信息 as x
left join 部分学生成绩 as y
on x.学号 = y.学号;

以上SQL查询使用左连接(left join),将“学生信息表”和“部分学生成绩表”进行连接,输出查询结果。

07b2621a17ff487781d77553af7ae6b9.png

可以看到以上查询返回了左表“学籍信息”的全部记录和右表“部分学生成绩表”相匹配记录,同时也返回了右表没有匹配到的记录,右表没有匹配到的字段在结果集中显示NULL。

2.右连接(right join)

我们使用右连接(right join)通过连接键“学号”将“部分学生考试成绩表”和“学生信息登记表”进行连接,最后输出查询结果。

select *
from 部分学生成绩 as x
right join 学籍信息 as y
on x.学号 = y.学号;

以上SQL查询使用了右连接(right join),最后输出查询结果。

e733206c5e8b4ff4a4b31209eb4ed3ee.png

可以看到以上查询返回了右表 “学籍信息”的全部记录和左表“部分学生成绩”相匹配的记录,同时也返回了左表没有匹配到的记录,左表没有匹配到的字段在结果集中显示NULL。

实际上我们也可以通过调换连接的表来实现左外连接和右外连接的转换。

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值