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

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只保留相同部分的数据;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值