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

数据库编程中经常会用到连接查询 , 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 , 欢迎点击给星

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值