【Oracle_SQL】oracle常用连接2升级版

本文深入解析Oracle SQL中四种连接方式:左连接、右连接、内连接及全连接。通过具体实例,展示了不同连接类型在数据匹配与不匹配情况下的表现,帮助读者理解每种连接的特点与应用场景。

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

【Oracle_SQL】oracle常用连接2升级版

oracle常用连接1

1、a表有一行记录与b表的两行记录匹配

两表的字段名和数据如下:

test_a表   test_b表
字段:no,name   字段:no,name
1,a   2,c
2,b   2,d

 

left连接:

select a.no,a.name, b.no,b.name from test_a a left join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
left2b2c
 2b2d

 

right连接:

select a.no,a.name, b.no,b.name from test_a a right join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
right2b2d
 2b2c

 

inner连接:

select a.no,a.name, b.no,b.name from test_a a inner join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
inner2b2d
 2b2c

 

full连接:

select a.no,a.name, b.no,b.name from test_a a full join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
full2b2c
 2b2d
 1afullfull

 

 

2、a表有2行记录与b表的2行记录匹配

两表的字段名和数据如下:

test_a表   test_b表
字段:no,name   字段:no,name
1,a   2,d
2,b   2,e
2,c    

left连接:

select a.no,a.name, b.no,b.name from test_a a left join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
left2c2d
 2b2d
 2c2e
 2b2e
 1anullnull

right连接:

select a.no,a.name, b.no,b.name from test_a a right join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
right2b2e
 2b2d
 2c2e
 2c2d

inner连接:

select a.no,a.name, b.no,b.name from test_a a inner join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
inner2b2e
 2b2d
 2c2e
 2c2d

full连接:

select a.no,a.name, b.no,b.name from test_a a full join test_b b on a.no = b.no;

 a.noa.nameb.nob.name
full2b2d
 2c2d
 2b2e
 2c2e
 1anullnull

总结:

基于以上结果的总结-----

先显示匹配后显示不匹配项,除内连接只显示匹配项;
左连接:匹配项顺序按左表的后往前,如右表有多个匹配项,左表匹配项和右表从上往下的一行为一个循环;
右连接:与左连接相反;
全连接:与左连接一样;
内连接:与左连接相反;                                
 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值