sql语句中left join、right join、inner join的区别

本文详细解释了SQL中的三种联接类型:left join、right join 和 inner join 的使用方法及区别。通过具体的表A和表B的例子,展示了每种联接方式的结果,并分析了其特点。

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

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录; 
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录;
inner join(等值连接) 只返回两个表中联结字段相等的行。

我们建立两个简单的表A和B,如图所示:

A:     B:

 

 1)left join

我们执行sql语句:select * from A left join B  on A.id = B.id;

结果如下:

说明:left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.id = B.id).
B表记录不足的地方均为NULL。

1)right join

我们执行sql语句:select * from A right join B  on A.id = B.id;

结果如下:

 

说明right join是以B表的记录为基础的,A可以看成左表,B可以看成右表,right join是以右表为准的。
以右表(B)为基础的,A表不足的地方用NULL填充。

1)inner join

我们执行sql语句:select * from A inner join B  on A.id = B.id;

结果如下:

说明:这里只显示出了 A.id = B.id的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录。

 

转载于:https://www.cnblogs.com/neuhao/p/7045289.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值