در INNER JOIN خروجی اشتراکی از سطرهای هر دو جدول بود که شرط join  که معمولا مساوی بودن مقدار دو ستون از دو جدول بود را بر آورده می کنند. همچنین در NATURAL JOIN شرط برابر بودن مقدار دو ستون همنام در دو جدول بود. روش دیگری که می خواهیم معرفی کنیم OUTER JOIN است که خودش به چند نوع دسته بندی می شود. خروجی در روش های OUTER JOIN شامل سطرهایی می شود که شرط join را بر آورده می کنند بعلاوه سطرهایی از یکی از دو جدول خواهد بود که شرط join را برآورده نمی کنند.

اگر سطرهای جدول اول (جدول سمت چپ یا left table) که با شرط join تطابق ندارند باید در خروجی بیایند، این حالت را left outer join می گوییم. بنابراین اگر سطرهای جدول دوم (جدول سمت راست یا rigth table) که با شرط join تطابق ندارند باید در خروجی بیایند، این حالت را rigth outer join می گوییم.

۴ – LEFT OUTER JOIN

همانند آنچه که در مورد INNER JOIN توضیه دادیم، در LEFT OUTER JOIN که LEFT JOIN نیز گفته می شود، عملیات ادغام دو جدول بر اساس شرط تعیین شده در جلوی ON انجام می شود. خروجی LEFT JOIN تمامی سطرهای جدول سمت چپ (یا Left Table) را برگشت می دهد که شامل همه سطرهایی است که شرط join را براورده می کند و همچنین تمام سطرهایی که شرط join را برآورده نخواهند کردهمچنین تمامی سطرهای جدول راست (Rigth Table) که شرط join را بر آورده می کنند در خروجی خواهند بود ولی سطرهایی که شرط join را بر آورده نکند، با مقدار NULL در خروجی نمایش داده می شوند. کد زیر الگوی کلی LEFT JOIN را نشان می دهد.

شکل زیر حالت left outer join را نشان می دهد. همانطور که مشخص است، بخش اشتراک میان دو جدول، نشان دهنده سطرهایی از هر دو جدول است که شرط join را برآورده کرده اند ولی بخش پر رنگ از جدول سمت چپ (table1)، آن سطرهایی هستند که شرط join را برآورده نکرده اند ولی باید در خروجی باشند.

مثالسطرهایی از دو جدول hr.employees و hr.departments را نشان دههید که مقدار ستون department_id آنها یکسان باشد. سپس نتیجه حاصل شده را بر اساس شرط تساوی ستون location_id با جدول locations ادغام کنید. هدف نمایش نام و نام خانوادگی کارمند، شناسه و نام دپارتمانو شناسه موقعیت (location_id) و نام شهر است.

RIGTH OUTER JOIN

حالت دیگری از OUTER JOIN است که عملکردی شبیه به LEFT OUTER JOIN دارد با این تفاوت که در این حالت سطرهای جدول سمت راست (rigth table) که شرط join را برآورده نمی کنند در خروجی نمایش داده می شوند. فرمت کلی rigth outer join به صورت زیر است.

شکل زیر حالت کلی right outer join (یا right join) را نشان می دهد که بخش اشتراک همان سطرهایی از هر دو جدول هستنذ که شرط join را برآورده کرده اند که به همراه تمامی سطرهایی از جدول سمت راست که شرط join را برآورده نمی کنند به عنوان خروجی rigth join خواهند بود.

مثالکوئری زیر فهرست تمامی سطرهای درون جداول hr.departments و hr.employees را نشان می دهد که مقدار ستون department_id آنها یکسان باشد به همراه سطرهایی از جدول hr.employees (جدول سمت راست) که مقدار ستون department_id آن متفاوت از جدول hr.departments است.

در مورد LEFT JOIN و RIGHT JOIN نوشتن کلمه OUTER در عبارت LEFT OUTER JOIN یا RIGTH OUTER JOIN اجباری نیست و می توانید از نوشتن آن صرف نظر کنید، پس با توجه به این مطلب، می توانیم فرمت کلی این دو join را بدون نوشتن عبارت OUTER به صورت زیر بازنویسی کنیم.