在oracle的連接(join)中使用using關鍵字

 

如果是使用natraul join,並且兩張表中如果有多個字段是具有相同的名稱和數據類型的,那麼這些字段都將被oracle自作主張的將他們連接起來。

但實際上我們有時候是不需要這樣來連接的。我們只需要將他們的多個具有相同的名稱和數據類型的字段中挑選一兩個。這時候我們就需要用到using 關鍵字了。

下面是一個例子。

在oracle的例子sh的schema中的有一個表是sales,還有一個表是costs,這兩個表中都有兩個字段分別是pro_id和time_id。我們暫且不去考慮下面連接的實際意義,僅作語法上的研究。

如果使用natural連接,默認情況下,兩個字段將會被自然地連接在一起。

Select * from

Sales natural join costs;

Select * from

Sales join costs on Sales.prod_id = costs.prod_id and sales.time_id = costs.time_id

Select * from

Sales ,costs

Where Sales.pro_id = cost.prod_id

and sales.time_id = costs.time_id

得到的結果應該是一樣的。

如果我們使用自然連接,就沒有機會控制連接條件,oracle自作主張的將兩個相同數據類型和名稱的字段自然地連接在一起了。

下面我們使用using關鍵字。

Select * from

Sales join costs using(prod_id)

這樣就迫使oracle使用using指出的字段來做連接,而不是natural join連接中默認的兩個。

請注意,這裏的SQL語句沒有任何意義,只是爲了說明using的用法舉了一個牽強的例子而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章