قبلا دیدیم که چطور اطلاعات را با ایجاد اتصال بین دو جدول استخراج کردیم . در این حالت می خواهیم اطلاعات را از جدولی انتخاب کنیم صرفنظر ازینکه آنها در جدول دیگر ارائه شده اند یا خیر . برای اینکار باید از outer join استفاده کنیم . 

این دستور در دیتابیس ها ، وابسته به نوع دیتابیس است . بطور مثال در اوراکل ما باید یک علامت "(+)" در کلمه where قرار دهیم .

Table 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 


 

Table Geography 
region_name  
store_name 

East  
Boston 

East  
New York 

West  
Los Angeles 

West  
San Diego 


جداول بالا موجود است و ما میخواهیم فروش تمام فروشگاه ها را که در جدول Geography آمده بدست آوریم . اگر مااز حالت join معمولی استفاده کنیم اطلاعات درستی بدست نمی آوریم ، چون مقدار New York را در جدول دوم به ما نشان نخواهد داد . چرا ؟ چون این مقدار در جدول اولی موجود نیست . 

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


نکته : وقتی که رکوردی در جدول دوم همتایش موجود نباشد NULL برگردانده میشود . در این حالت New York در جدول Store_Information موجود نمی باشد .