SQL中left join,right join,inner join的区别

本文详细介绍了SQL中的连接查询,包括left join(左联接)、right join(右联接)及inner join(内连接)。通过实例展示了不同类型的连接如何处理两个表之间的数据匹配,并解释了在查询结果中如何处理缺失值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库编程中经常会用到连接查询 , left join , right join , inner join , 其各自的用法总结如下 :

表数据如下 :

表A记录数据 :

TableA1

表B数据 :

TableB1


left join 执行结果如下 :

# select * from A left join B on A.a_id = B.b_id;

LeftJoin1

left join (左联接) , 是以左表为准的 , 左表的记录将会全部表示出来 , 而右表只会显示符合搜索条件的记录 , 右表记录不足的地方均为NULL


right join 执行结果如下 :

# select * from A right join B on A.a_id = B.b_id;

RightJoin1

right join (右联接) , 是以右表为准的 , 右表的记录将会全部表示出来 , 而左表只会显示符合搜索条件的记录 , 左表记录不足的地方均为NULL


inner join 执行结果如下 :

# select * from A left join B on A.a_id = B.b_id;

InnerJoin1

inner join (内连接) 组合两个表中的记录 , 只返回在公共字段之中有相符的值


将B表增加一条记录如下 :

TableB2


再执行 left join , 结果如下 :

# select * from A left join B on A.a_id = B.b_id;

LeftJoin2

B表里面有两条 b_id 为2的记录 , 都能与A表里面 a_id 为2的数据匹配成功 , 因此返回两条 , 其他查询同理


个人网站: Github , 欢迎点击给星

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值