در این بخش برای یادگیری join نیاز به بسیاری از کلمات کلیدی ای داریم که در دروس قبل آموختیم. به دو جدول زیر توجه کنید .

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 اطلاعات مناطق جغرافیایی را در بر دارد و جدول Store_Information اطلاعات فروش شهر ها را . برای بدست آوردن فروش در هر منطقه ، ما باید اطلاعات بدست آمده از هر منطقه را در هم ترکیب کنیم . با نگاهی به دو جدول می فهمیم که یک فیلد مشترک در هر دو موجود است و آن store_name میباشد که با یک کاما بهم وصل میشوند .

کد زیر را ببینید تا توضیحات را شرح دهیم .

SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name

نتیجه :

REGION

SALES

East

$700

West

$2050

دو خط اول کد به sql میگوید که دو فیلد را انتخاب کند . اولین خط فیلد region_name است از جدول Geography که نام مستعار REGION گرفته است . و دومین خط حاصل فیلد sales از جدول Store_Information که نام مستعار sales گرفته است . دقت کنید که چگونه مستعار های جدول در اینجا بکار گرفته شده . Geography بعنوان A1 مستعار شده و Store_information بنام A2  . بدون استفاده از مستعار ها خط اول بصورت زیر در میاید .

SELECT Geography.region_name REGION, SUM(Store_Information.Sales) SALES

اساسا کار مستعار ها قابل درک کردن کد های طولانی SQL است . بخصوص هنگامی که چند جدول در کار است .

حال بخط سوم کد اصلی توجه کنید ،یعنی کلمه where  . اینجا جائیست که join کارش معلوم میشود . در این حالت ما میخواهیم مطمئن شویم که محتوای "store_name"  در جدول Geography با مقادیر آن در جدول Store_Information نظیر میشود و راهش اینه که آنها را برابر هم قرار دهیم . کلمه where لازمه که مطمئن شویم که اطلاعات درست بدست میاید . بدون یک کلمه where درست ، یک نتیجه join دکارتی بدست میاید . نتیحه دکارتی در اصل ترکیبی از تمام حالات بوجود آمده از دو جدول را ارائه میکند . یعنی نتیجه برابر میشه با  4 x 4 = 16