星期三, 7月 18, 2012

[轉貼] Left outer Join in Oracle 的解釋

http://www.1keydata.com/tw/sql/sqlouterjoin.html

假設我們有以下的兩個表格: 

Store_Information 表格

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

Geography 表格

region_name

store_name

East

Boston

East

New York

West

Los Angeles

West

San Diego

我們需要知道每一間店的營業額。如果我們用一個普通的連接,我們將會漏失掉 'New York'這個店,因為它並不存在於 Store_Information 這個表格。 所以,在這個情況下,我們需要用外部連接來串聯這兩個表格:

SELECT A1.store_name, SUM(A2.Sales) SALES 
FROM Georgraphy A1, Store_Information A2
 
WHERE A1.store_name = A2.store_name (+)
 
GROUP BY A1.store_name

我們在這裡是使用了 Oracle 的外部連接語法。

結果:

store_name

SALES

Boston

$700

New York

 

Los Angeles

$1800

San Diego

$250

請注意: 當第二個表格沒有相對的資料時, SQL 會傳回 NULL 值。在這一個例子中, 'New York' 並不存在於 Store_Information 表格,所以它的 "SALES" 欄位是 NULL. 

 

 

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...