SQl中的左连接,右连接,内连接,全连接,自连接的理解。

46 篇文章 0 订阅
9 篇文章 0 订阅

SQl中的左连接,右连接,内连接,全连接,自连接的理解。

    按照自己的理解做个笔记,以下在Sql Server2005和Oracle92中都运行通过:

create table a(
   aid varchar(2),
   aname varchar(10),
   bid varchar(2) );

create table b(
   bid varchar(2),
   bname varchar(10));


insert into a values('s1','sname1','c1');
insert into a values('s2','sname2','c2');
insert into a values('s3','sname3','c3');
insert into a values('s4','sname4','c4');
insert into a values('s5','sname5','c5');

insert into b values('c1','cname1');
insert into b values('c2','cname2');
insert into b values('c3','cname3');
insert into b values('c6','cname6');
insert into b values('c7','cname7');

--Iner Join和Join和, (如select * from a,b where a.id=b.id),这三个效果一样.

select * from  a ,  b where  a.bid = b.bid;
select * from a join b on a.bid = b.bid;
select * from a inner join b on a.bid = b.bid;

 

 

 

--Left Join和Left Outer Join 左连接、左外连接,效果一样。
select * from a left join b on a.bid = b.bid;
select * from a left outer join b on a.bid = b.bid;

 

 

 

 

 

--Right Join和Right Outer Join 右连接、右外连接,效果一样。

select * from a right join b on a.bid = b.bid;
select * from a right outer join b on a.bid = b.bid;

 

 

 

 

 

 

--Full Join和Full Outer Join 全连接、全外连接,效果一样。

select * from a full join b on a.bid = b.bid;
select * from  a full outer join  b on a.bid = b.bid;

 

 

 

 

--Cross Join,不带where,即笛卡尔积。

select * from a  Cross join b;

 

 

 

 

总结:只有以上的的连接词,像什么Left Inner Join、Right Full Join之类的组合都没有,想都别想!! 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值