صفحه نخست پرسش و پاسخ پشتیبانی درباره ما تماس با ما

یک وی پی

دانلود پوسته و پلاگین وردپرس

راه اندازی فروشگاه آنلاین فایل
برای جستجو، کلمه کلیدی را وارد کنید

فرق بین inner join,right join ,left join


در Inner join فقط رکوردهایی نمایش داده میشوند که در شرط مطابقت داشته باشند.و اگر در جدول اول رکوردی وجود داشته باشه که با هیچ رکوردی از جدول دوم مطابقت نداشته باشه، در نتیجه نهایی نمایش داده نمیشه.
در Left join تمام رکوردها از جدول اول(جدول سمت چپ join) نمایش داده میشه، حتی اگر با هیچ رکوردی از جدول دوم مطابقت نداشته باشه.
Right join برعکس left join عمل میکنه و تمام رکوردهای جدول دوم(جدول سمت راست join) رو نمایش میده، حتی اگر با هم مطابقت نداشته باشند.

 

نکته مهمی که در تفاوت Inner Join و Outer Join باید بدونین این هست که در Inner Join رکوردهای حذف شده در شرط ON، دیگه حذف شده اند و بلافاصله شرط WHERE (اگر وجود داشته باشه) اعمال میشه. لذا در Inner Join میتونین شرط WHERE رو به قسمت ON هم منتقل کنین. اما در Outer Join پس از پایان شرط ON، رکوردهای حذف شده مجددا به Result Set برمیگردن و چون با جدول طرف دیگه Match نشدن، براشون Null بدست میاد. پس از این مرحله شرط WHERE اعمال میشه

 

برای توضیح تفاوت این دو فرض کنید دو جدول A و B  داریم: فرض میکنیم که هر رو این جدول ها هم یک ستون دارند:

A    B
-    -
۱    ۳
۲    ۴
۳    ۵
۴    ۶

توجه کنید که ۱ و ۲ برای  جدول A منحصر به فردند
و ۵ و ۶ برای جدول B منحصر به فرد هستند
۳ و ۴ نیز برای هر دو جدول مشترک هستند.

INNER JOIN

select * from A INNER JOIN B on A.A = B.B;
select A.*,B.*  from A,B where A.A = B.B;

//  نتیجه 
A | B
--+--
۳ | ۳
۴ | ۴


دیدید که INNER JOIN نتایج مشترک را نمایش میدهد

LEFT OUTER JOIN

select * from a LEFT OUTER JOIN B on A.A = B.B;
select A.*,B.*  from A,B where A.A = B.B(+);


//  نتیجه 

A |  B
--+-----
۱ | null
۲ | null
۳ |    ۳
۴ |    ۴

میبینیم که LEFT OUTER JOIN همه نتایج از جدول A رو بر میگردونه  ولی چون در دو مورد با جدول B مشترک نیست اون دو مقدار در B مقدار NULL برمیگردونن.

FULL OUTER JOIN

select * from A FULL OUTER JOIN B on A.A = B.B;

//  نتیجه 
 A   |  B
-----+-----
   ۱ | null
   ۲ | null
   ۳ |    ۳
   ۴ |    ۴
null |    6
null |    5

در FULL OUTER JOIN  همه مقدارهای جدول A و همه مقدار های جدول B حضور دارند اما تفاوت در این است
که مقادیری از A که در B معادلی نداشته اند در جدول B  مقدار NULL برمیگردانند و
قادیری از B که در A معادلی نداشته اند در جدول A  مقدار NULL برمیگردانند .

شما اولین نفری هستید که در این مورد دیدگاهی بیان می کنید ارسال دیدگاه

تمام حقوق مادی و معنوی برای وب سایت یک وی پی محفوظ است. استفاده از مطالب وب سایت ،فقط در صورت ذکر منبع مجاز می باشد.
© All rights reserved 1wp.ir 2010-2018.