银行面试题:左连接,以及and筛选和where筛选的区别

本文介绍了如何在Oracle SQL中进行表Aa、Ab和Ac的左连接操作,展示了Aa与Ab的全左连接及Aa与Ac的重复数据连接,并比较了and与where筛选条件在左连接中的区别。重点讲解了SQL查询在数据处理中的应用和关联表操作实践。

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

create table Aa(
id number(5),
name varchar2(10)
)
​
insert into Aa values (1,'A');
insert into Aa values (2,'B');
insert into Aa values (3,'C');
insert into Aa values (4,'D');
insert into Aa values (5,'E');
insert into Aa values (6,'F');
insert into Aa values (7,'G');
insert into Aa values (8,'H');
​
​
select * from Aa;

 

create table Ab(
id number(5),
name varchar2(10)
)
​
insert into Ab values (1,'A');
insert into Ab values (2,'b');
insert into Ab values (3,'C');
insert into Ab values (4,'d');
insert into Ab values (5,'E');
insert into Ab values (6,'f');
​
select * from Ab;

 

 

create table Ac(
id number(5),
name varchar2(10)
);
​
insert into Ac values (1,'A');
insert into Ac values (2,'B');
insert into Ac values (3,'C');
insert into Ac values (1,'A');
insert into Ac values (2,'B');
insert into Ac values (3,'C');
​
select * from Ac;

 

 

Aa表和Ab表的左连接,保留join左边的全部数据;

select *
from Aa a
left join Ab b
on a.id=b.id; 

 

 

Aa表和Ac表的左连接,保留join左边的全部数据加上重复的数据;

select *
from Aa a
left join Ac c
on a.id=c.id;

 

 

左连接里面如果使用and筛选和用where筛选的区别:

select *
from Aa a
left join Ab b
on a.id=b.id and b.id in(1,2,3)

 

 

and保留join左边的所有数据;

select *
from Aa a
left join Ab b
on a.id=b.id where b.id in(1,2,3)

 

 

where只保留相同部分的数据;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值