Mysql的inner join、left join、right join关键字的使用

系列文章目录


在使用mysql时经常会遇到连表查询,比如我们有两张表,一张用户表包括姓名和id两个字段,一张商品购买记录表包括商品名称和购买用户的id,我们可以通过用户表中的用户id字段匹配出购买记录表中的相关数据。mysql表连接有三种,下面就跟我一起学习一下吧~


一、inner join 内连接

inner join 展示左表与右表均满足备匹配条件的数据。比如我们有两张表,一张用户表,一张商品购买记录表,我们以usr作为左表,usr_id为条件用inner join关键字去关联order_record表查询。
准备两张数据表如下:
请添加图片描述
执行查询的sql如下:

SELECT
usr.`name`,
order_record.order_name 
FROM usr
INNER JOIN order_record ON usr.usr_id=order_record.usr_id 

查询结果如下:展示了usr表和order_record均表符合条件匹配的数据
请添加图片描述
用图形解释匹配规则如下:蓝色表示匹配出的数据
请添加图片描述

二、left join 左连接

left join 展示左表所有数据的同时展示右表符合匹配条件的数据。我们依然用usr和order_record两张数据表做测试,usr是左表,以usr_id为条件left join关键字匹配规则,准备两张数据表如下:
请添加图片描述
执行查询的sql如下:

SELECT
usr.`name`,
order_record.order_name 
FROM usr
LEFT JOIN order_record ON usr.usr_id=order_record.usr_id 

查询结果如下:展示了所有usr表数据的同时展示了order_record表符合条件匹配的数据
请添加图片描述
用图形解释匹配规则如下:蓝色表示匹配出的数据
请添加图片描述

三、right join 右连接

right join 是展示右表所有数据的同时展示左表符合匹配条件的数据。我们依然用以上的usr表和order_record表,usr为左表,order_record为右表,以usr_id为条件,使用right join匹配规则,两张数据表展示如下:
请添加图片描述
执行查询的sql如下:

SELECT
usr.`name`,
order_record.order_name 
FROM usr
RIGHT JOIN order_record ON usr.usr_id=order_record.usr_id 

查询结果如下:展示了所有order_record表数据的同时展示了usr表符合条件匹配的数据
请添加图片描述
用图形解释匹配规则如下:蓝色表示匹配出的数据
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值