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.columnfromtable1innerjoin(selecttable4.column,table5.columnfromtable4innerjointable5ontable4.column=table5.column)astable2ontable1.column=table2.column;等同于selecttable1.column,table2.columnfromtable1,(selecttable4.column,table5.columnfromtable4,table5wheretable4.column=table5.column)astable2wheretable1.column=table2.column;--连接table1,table2,table3,没有连接顺序之分selecttable1.column,table2.column,table3.columnfromtable1innerjointable2ontable1.column=table2.columninnerjointable3ontable1.column=table3.column;等同于selecttable1.column,table2.column,table3.columnfromtable1,table2.table3wheretable1.column=table2.columnandtable1.column=table3.column;
内连接:
标准写法:
selecttable.column,table2.columnfromtable1innerjointable2on(table1.column=table2.column);
oracle 特殊写法:
selecttable.column,table2.columnfromtable1,table2wheretable1.column=table2.column;
左连接:
标准写法:
selecttable.column,table2.columnfromtable1leftjointable2on(table1.column=table2.column);
oracle 特殊写法:
selecttable.column,table2.columnfromtable1,table2wheretable1.column=table2.column(+);
右连接:
标准写法:
selecttable.column,table2.columnfromtable1rightjointable2on(table1.column=table2.column);
oracle 特殊写法:
selecttable.column,table2.columnfromtable1,table2wheretable1.column(+)=table2.column;
全连接:
标准写法:
selecttable.column,table2.columnfromtable1fulljointable2on(table1.column=table2.column);
oracle 特殊写法:
selecttable.column,table2.columnfromtable1,table2wheretable1.column(+)=table2.column(+);
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。