SQL Server联合查询,left join和right join以及inner join的比较

有如下测试数据表

jointest.sql

use chenyamin

create table jointest(studentid int,studentname varchar(255))

insert into jointest(studentid,studentname)

values(1,'Andy'),
      (2,'Betty'),
      (3,'Cendy'),
      (5,'Dany'),
      (6,'Enliy')

select * from jointest

jointest表效果图:

 testjoin.sql

use chenyamin

create table testjoin(studentid int,studentname varchar(255))

insert into testjoin(studentid,studentname)

values(1,'Fendy'),
	  (2,'Gendy'),
	  (3,'Hunny'),
	  (8,'Jeity')

select * from testjoin
testjoin表效果图:


左联合 left join  返回包括左表中的所有记录和右表中联结字段相等的记录

select * from jointest a left join testjoin b on a.studentid=b.studentid

右联合 right join 返回包括右表中的所有记录和左表中联结字段相等的记录

select * from jointest a right join testjoin b on a.studentid=b.studentid

内联  inner join  列出两表中标识号相同的所有行
select * from jointest a inner join testjoin b on a.studentid=b.studentid


注意:如果两表甚至多表联合,出现一个字段值对应多个字段值时,结果会成倍增长。

比如表join1和表join2内容如下图:


inner join结果:


从上面的结果可以看出,一对多或者多对多时,联合的过程在下图中表现出来了


同样,执行左联和右联





我的理解比较慢,所以自己重新整理了一遍,想拍砖的不要客气大笑



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值