oracle 表连接特有写法与标准写法
admin
2023-04-25 13:03:00
0

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(+);


相关内容

热门资讯

沈伯洋与台北市长格局有落差,叶... 海峡导报综合报道 民进党将正式拍板征召民代沈伯洋出战台北市长,并发布采访通知,预计在13日下午举行台...
核查:上世纪已有多款汉坦疫苗上... 明查员 冯梦速览- 人类感染汉坦病毒已有数十年历史。朝鲜战争期间,联合国军就曾有过大规模感染。汉坦病...
如何从“一证在手”走向“一技傍... 教员在给学员讲解理论知识。 学员在进行无人机试飞训...
内蒙古自治区党委金融工作委员会... 内蒙古自治区党委金融工作委员会副书记马保国涉嫌严重违纪违法,目前正接受内蒙古自治区纪委监委纪律审查和...
涉非市场化发债,老牌房企花样年... 【大河财立方消息】 5月12日,深圳证监局发布行政监管措施决定书显示,花样年集团(中国)有限公司因非...
郑州市今年计划新入库45个城市... 【大河财立方消息】5月12日,郑州市城乡建设局就《郑州市2026年度城市更新计划(征求意见稿)》公开...
让无名者有名,让英雄回家!湖南... 1948年秋冬,辽沈战役的硝烟刚刚散去,一大批东北子弟兵随军南下。不到一年后,1949年8月,300...
伊方透露新一轮谈判先决条件 当地时间12日,伊朗方面发布消息称,一名知情人士透露了伊朗同美国新一轮谈判的五项先决条件 ——即“结...
中东危机下,莫迪将密集访问5国 【环球时报驻巴基斯坦特约记者 黄晓娜】印度外交部11日宣布,印度总理莫迪将于15日开始对阿联酋、荷兰...