ANSI语法-join小节

A Inner join:返回所有符合条件的行,不包含不一致的行。

A.1 Natural Join:要求有同名同数据类型的列名,在使用的时候不能运用表的别名,可以连接多个表。

Select * from table_a natural join table_b;

A.2 Join using:有同名但数据类型不一致的列名,可将列名加在using后。也不能使用表的别名。

Select * from table_a join table_b using(column_1,column_2);


A.3 Join on可以不同列名不同数据类型,可以使用表的别名。

Select * from table_a ta join table_b tb on ta.column_1=tb.column_2;

等同Select * from table_a ta join table_b tb where ta.column_1=tb.column_2;

A.4 Cross join:进行笛卡儿集的计算,表an行,表bm行,结果返回m×n行。

Select * from table_a cross join table_b;

等同Select * from table_a ,table_b;

B Outer join返回所有符合条件的行,包含不一致的行。

B.1 left outer joinjoin左边不符合条件的行也一起查询出来。

Select * from table_a left join table_b using(column_1);

Select * from table_a ta left outer join table_b tb on ta.column_1=tb.column_2;

等同Select * from table_a ta ,table_b tb where ta.colume_1(+)=tb.cloumn_2;

B.2 right outer joinjoin右边不符合条件的行也一起查询出来。

Select * from table_a right join table_b using(column_1);

Select * from table_a ta right outer join table_b tb on ta.column_1=tb.column_2;

等同Select * from table_a ta ,table_b tb where ta.colume_1=tb.cloumn_2(+);

B.3 full outer joinjoin两边不符合条件的行也一起查询出来。

Select * from table_a ta full outer join table_b tb on ta.column_1=tb.column_2;

等同Select * from table_a ta ,table_b tb where ta.colume_1(+)=tb.cloumn_2 union Select * from table_a ta ,table_b tb where ta.colume_1=tb.cloumn_2(+);

C other join:

C.1 self-join:表自己做连接,由于需要写2个表的别名,因此不能用natural joinjoin using

Select ta.* from table_a ta inner join table_a tb on ta.column_1=tb.cloumn_2;

等同Select ta.* from table_a ta, join table_a tb where ta.column_1=tb.cloumn_2;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值