ورود

View Full Version : عدم تفاوت JOIN ها در شکل دستوری و اجرا



leontry89
یک شنبه 29 آذر 1394, 16:08 عصر
دوستان در مورد انواع JOIN ها من تفاوتشون و متوجه نمیشم. دقیقا تو LEFT JOIN همون اتفاقی میفته که تو INNER JOIN میفته می خواستم تفاوتشون و بدونم و سوال دومم اینه که مهمترین JOIN در پروژه ها INNER هست درسته>؟

saeedr22
یک شنبه 29 آذر 1394, 16:40 عصر
با سلام.با یه مثال براتون توضیح میدم.فرض کنین که یه جدول به اسم پرسنل داریم و یک جدول به اسم شهر محل خدمت
بین جدول پرسنل و شهر یک ارتباط n*1 وجود داره و در جدول پرسنل ما علاوه بر کد، نام و نام خانوادگی پرسنل و ... کد شهر محل خدمت رو هم می تونیم ذخیره کنیم.
با فرض اینکه در جدول شهر اطلاعات زیر وجود داره
1-تهران
2-کرج

حالا 3 حالت وجود داره
1-سعید رضایی کد شهر =1
2-حامد محمدی کد شهر =NULL
3-شهر 2 برای هیچ پرسنلی ذخیره نشده است.

در صورتی که iiner join باشه فقط رکورد مربوط به سعید رضایی رو نشون میده چون برای حامد محمدی شهری ثبت نشده است.
در ضورتی که from personel left outer join City باشه ملاک اطلاعات جدول سمت چپ هستش و هم سعید رضایی و هم حامد محمدی رو نشون میده و اگه شهر داشته باشه کد شهرشو نشون میده اگه نه Null نشون میده.
در صورتی که right outer join باشه جدول سمت راست که اینجا شهر هستش ملاک قرار میگیره و خروجی به صورت
سعید رضایی تهران
NULL NULL کرج نمایش داده میشه.