 |
|
 |
 |
 |
|
 |
 |
آموزش SQL server - دستور OUTER JOIN
|
 |
 |
|
 |
| |
قبلا دیدیم که چطور اطلاعات را با ایجاد اتصال بین دو جدول استخراج کردیم . در این حالت می خواهیم اطلاعات را از جدولی انتخاب کنیم صرفنظر ازینکه آنها در جدول دیگر ارائه شده اند یا خیر . برای اینکار باید از 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 موجود نمی باشد .
|
|
| |
نظر شما
|
|
1384/02/19
|
نویسنده : حسين شرفي
|
|
| |
|
|