系列文章目录
在使用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表符合条件匹配的数据
用图形解释匹配规则如下:蓝色表示匹配出的数据