oracle 表连接特有写法与标准写法

发布时间:2020-08-05 23:51:06 作者:天黑顺路
来源:网络 阅读:350

oracle里表连接支持标准写法,但也有oracle特殊的写法,这两种写法在某些场景下会有差异,推荐使用标准写法,这里只是介绍表连接标准语法及了解oracle的特殊写法。

标准连接语法:

select table1.column , table2.column

from table1

[corss join table2]

[national jon table2]

[join table2 using (column)]

[join table2 on (table1.column=table2.column)]

[left | right | full outer join table2 on (table1.column=table2.column)];


实际使用中on关键字后的连接字段不用括号也可以正常使用。


多表连接:

--先连接table4和table5并将其结果集命名为table2,再与table1连接
select table1.column,table2.column 
from table1 
 inner join 
( select table4.column,table5.column 
   from table4 inner join table5 
   on table4.column =table5.column ) as table2  
on table1.column=table2.column;

等同于
select table1.column ,table2.column
from table1 ,(select table4.column,table5.column 
                  from table4,table5 
                  where table4.column=table5.column) as table2
where table1.column=table2.column;


--连接table1,table2,table3,没有连接顺序之分
select table1.column,table2.column,table3.column 
from table1 inner join table2 
         on  table1.column=table2.column
         inner join table3
         on table1.column=table3.column;

等同于
select table1.column,table2.column,table3.column 
from table1,table2.table3
where table1.column=table2.column and  table1.column=table3.column;


内连接:

标准写法:

select  table.column , table2.column 
from table1 inner join table2 on (table1.column=table2.column);

oracle 特殊写法:

select table.column , table2.column
from table1 ,table2
where table1.column=table2.column;


左连接:

标准写法:

select   table.column , table2.column 
from table1 left join table2 on (table1.column=table2.column);

oracle 特殊写法:

select  table.column , table2.column 
from table1 ,table2
where table1.column=table2.column(+);


右连接:

标准写法:

select table.column , table2.column 
from table1 right join table2 on (table1.column=table2.column);

oracle 特殊写法:

select   table.column , table2.column 
from table1 ,table2
where table1.column(+)=table2.column;


全连接:

标准写法:

select  table.column , table2.column 
from table1 full join table2 on (table1.column=table2.column);

oracle 特殊写法:

select  table.column , table2.column 
from table1 ,table2
where table1.column(+)=table2.column(+);


推荐阅读:
  1. Oracle学习篇之SQL语句的优化
  2. Oracle 查询转换之子查询展开

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle 表连接 acle

上一篇:sed命令之练习集

下一篇:python 图像处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》