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

前端之家收集整理的这篇文章主要介绍了oracle 表连接特有写法与标准写法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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连接
selecttable1.column,table2.column
fromtable1
innerjoin
(selecttable4.column,table5.column
fromtable4innerjointable5
ontable4.column=table5.column)astable2
ontable1.column=table2.column;

等同于
selecttable1.column,table2.column
fromtable1,(selecttable4.column,table5.column
fromtable4,table5
wheretable4.column=table5.column)astable2
wheretable1.column=table2.column;


--连接table1,table2,table3,没有连接顺序之分
selecttable1.column,table2.column,table3.column
fromtable1innerjointable2
ontable1.column=table2.column
innerjointable3
ontable1.column=table3.column;

等同于
selecttable1.column,table3.column
fromtable1,table2.table3
wheretable1.column=table2.columnandtable1.column=table3.column;


内连接:

标准写法:

selecttable.column,table2.column
fromtable1innerjointable2on(table1.column=table2.column);

oracle 特殊写法:

selecttable.column,table2
wheretable1.column=table2.column;


左连接:

标准写法:

selecttable.column,table2.column
fromtable1leftjointable2on(table1.column=table2.column);

oracle 特殊写法:

selecttable.column,table2
wheretable1.column=table2.column(+);


右连接:

标准写法:

selecttable.column,table2.column
fromtable1rightjointable2on(table1.column=table2.column);

oracle 特殊写法:

selecttable.column,table2
wheretable1.column(+)=table2.column;


全连接

标准写法:

selecttable.column,table2.column
fromtable1fulljointable2on(table1.column=table2.column);

oracle 特殊写法:

selecttable.column,table2
wheretable1.column(+)=table2.column(+);

猜你在找的Oracle相关文章