天天看點

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關鍵字後的連接配接字段不用括号也可以正常使用。

多表連接配接:

<code>--先連接配接table4和table5并将其結果集命名為table2,再與table1連接配接</code>

<code>select</code> <code>table1.</code><code>column</code><code>,table2.</code><code>column</code> 

<code>from</code> <code>table1 </code>

<code> </code><code>inner</code> <code>join</code> 

<code>( </code><code>select</code> <code>table4.</code><code>column</code><code>,table5.</code><code>column</code> 

<code>   </code><code>from</code> <code>table4 </code><code>inner</code> <code>join</code> <code>table5 </code>

<code>   </code><code>on</code> <code>table4.</code><code>column</code> <code>=table5.</code><code>column</code> <code>) </code><code>as</code> <code>table2  </code>

<code>on</code> <code>table1.</code><code>column</code><code>=table2.</code><code>column</code><code>;</code>

<code>等同于</code>

<code>select</code> <code>table1.</code><code>column</code> <code>,table2.</code><code>column</code>

<code>from</code> <code>table1 ,(</code><code>select</code> <code>table4.</code><code>column</code><code>,table5.</code><code>column</code> 

<code>                  </code><code>from</code> <code>table4,table5 </code>

<code>                  </code><code>where</code> <code>table4.</code><code>column</code><code>=table5.</code><code>column</code><code>) </code><code>as</code> <code>table2</code>

<code>where</code> <code>table1.</code><code>column</code><code>=table2.</code><code>column</code><code>;</code>

<code>--連接配接table1,table2,table3,沒有連接配接順序之分</code>

<code>select</code> <code>table1.</code><code>column</code><code>,table2.</code><code>column</code><code>,table3.</code><code>column</code> 

<code>from</code> <code>table1 </code><code>inner</code> <code>join</code> <code>table2 </code>

<code>         </code><code>on</code>  <code>table1.</code><code>column</code><code>=table2.</code><code>column</code>

<code>         </code><code>inner</code> <code>join</code> <code>table3</code>

<code>         </code><code>on</code> <code>table1.</code><code>column</code><code>=table3.</code><code>column</code><code>;</code>

<code>from</code> <code>table1,table2.table3</code>

<code>where</code> <code>table1.</code><code>column</code><code>=table2.</code><code>column</code> <code>and</code>  <code>table1.</code><code>column</code><code>=table3.</code><code>column</code><code>;</code>

内連接配接:

标準寫法:

<code>select</code>  <code>table</code><code>.</code><code>column</code> <code>, table2.</code><code>column</code> 

<code>from</code> <code>table1 </code><code>inner</code> <code>join</code> <code>table2 </code><code>on</code> <code>(table1.</code><code>column</code><code>=table2.</code><code>column</code><code>);</code>

oracle 特殊寫法:

<code>select</code> <code>table</code><code>.</code><code>column</code> <code>, table2.</code><code>column</code>

<code>from</code> <code>table1 ,table2</code>

左連接配接:

<code>select</code>   <code>table</code><code>.</code><code>column</code> <code>, table2.</code><code>column</code> 

<code>from</code> <code>table1 </code><code>left</code> <code>join</code> <code>table2 </code><code>on</code> <code>(table1.</code><code>column</code><code>=table2.</code><code>column</code><code>);</code>

<code>where</code> <code>table1.</code><code>column</code><code>=table2.</code><code>column</code><code>(+);</code>

右連接配接:

<code>select</code> <code>table</code><code>.</code><code>column</code> <code>, table2.</code><code>column</code> 

<code>from</code> <code>table1 </code><code>right</code> <code>join</code> <code>table2 </code><code>on</code> <code>(table1.</code><code>column</code><code>=table2.</code><code>column</code><code>);</code>

<code>where</code> <code>table1.</code><code>column</code><code>(+)=table2.</code><code>column</code><code>;</code>

全連接配接:

<code>from</code> <code>table1 </code><code>full</code> <code>join</code> <code>table2 </code><code>on</code> <code>(table1.</code><code>column</code><code>=table2.</code><code>column</code><code>);</code>

<code>where</code> <code>table1.</code><code>column</code><code>(+)=table2.</code><code>column</code><code>(+);</code>

<code></code>

本文轉自 天黑順路 51CTO部落格,原文連結:http://blog.51cto.com/mjal01/1975625,如需轉載請自行聯系原作者