PDA

View Full Version : join



j_maneshi
سه شنبه 30 آبان 1385, 19:37 عصر
right join & left join را توضیح دهید

Kamyar.Kimiyabeigi
چهارشنبه 01 آذر 1385, 08:50 صبح
left join در واقع اطلاعاتی که از جدول راست مشترک هست را به صورت inner join میاره و از جدول چپ همه اطلاعات رو میاره دقیقا" همین هم در مورد right join به صورت برعکس صادقه

mef_ss
دوشنبه 06 آذر 1385, 17:32 عصر
left outer join، تمام اطلاعات جدول سمت چپ رو بر می گردونه، بدون توجه به اینکه آیا رکورد متناظرش در جدول سمت راست هست یا نه.
right outer join بر عکسه left outer join عمل می کنه.

محمد دادودنیا
دوشنبه 06 آذر 1385, 20:42 عصر
Inner Join




SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a INNER JOIN publishers AS p
ON a.city = p.city
AND a.state = p.state
ORDER BY a.au_lname ASC, a.au_fname ASC



اگر هر دو فیلد a.city = p.city مقدار یکی داشته باشند دوتا جدول رو با هم Join می کنه و اطلاعات هر دو رو نشون میده در غیر اینصورت هیچکدام از اطلاعات رکوردها در هر دو بانک رو نمایش نمی ده
ولی گاهی وقتها هست که می خوای اگر در جدول اول یا دوم اطلاعات متناظری نبود اطلاعات جدولی رو که داره بیاره با این تفاوت که اطلاعات جدولی رو مشابهش پیدا نشده رو به صورت خالی Null بیاره که باید بر حسب نیاز از Left Outer join یا Right Outer join استفاده کنی
مثال

USE pubsSELECT a.au_fname, a.au_lname, p.pub_nameFROM authors a LEFT OUTER JOIN publishers p ON a.city = p.cityORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASCHere is the result set:
au_fname au_lname pub_name -------------------- ------------------------------ ----------------- Reginald Blotchet-Halls NULLMichel DeFrance NULLInnes del Castillo NULLAnn Dull NULLMarjorie Green NULLMorningstar Greene NULLBurt Gringlesby NULLSheryl Hunter NULLLivia Karsen NULLCharlene Locksley NULLStearns MacFeather NULLHeather McBadden NULLMichael O'Leary NULLSylvia Panteley NULLAlbert Ringer NULLAnne Ringer NULLMeander Smith NULLDean Straight NULLDirk Stringer NULLJohnson White NULLAkiko Yokomoto NULLAbraham Bennet Algodata InfosystemsCheryl Carson Algodata Infosystems(23 row(s) affected)