انواع join ها در SQL

تاریخ انتشار:1395-08-24
تاریخ بروزرسانی: 1395-08-24
تعداد بازدید: 2352



انواع join ها در SQL

انواع join ها در SQL

1) Inner Join

در این روش سطرهایی نمایش داده می شوند که در هر دو جدولی که با هم Join شده اند وجود دارند. فرض کنید که دو جدول به نام titles و publishers داریم و می خواهیم برای هر title ، publisher آنرا تعیین کنیم. در اینصورت از Inner Join بصورت زیر استفاده می کنیم :

 

SELECT title, pub_name

FROM titles INNER JOIN

publishers ON titles.pub_id = publishers.pub_id

 

در اینصورت title هایی که publisher ندارند یا publisher هایی که title ندارند هیچ کدام در خروجی نمی آیند.

2) Outer Join

در این روش سطرهایی از جدول اصلی که سطر متناظرشان در جدول دیگر وجود ندارد هم در خروجی می آیند. بسته به اینکه بخواهیم کدامیک از سطرهایی که در جدول دیگر متناظر ندارند هم در خروجی بیایند، سه نوع Outer Join بصورت زیر تعریف می شود :

2-1) Left Outer Join

 تمام سطرهای جدول اولی (جدولی که در سمت چپ Join قرار گرفته است) در خروجی ظاهر می شوند. ولی سطرهایی از جدول دوم که متناظری در جدول اول ندارند در خروجی نمی آیند. بعنوان مثال دستور زیر تمام title ها ، حتی آنهایی که publisher ندارند، را در خروجی نشان می دهد :

SELECT titles.title_id, titles.title, publishers.pub_name

FROM titles LEFT OUTER JOIN publishers

ON titles.pub_id = publishers.pub_id

 

2-2) Right Outer Join

تمام سطرهای جدول دومی (جدولی که در سمت راست Join قرار گرفته است) در خروجی ظاهر می شوند. بعنوان مثال دستور زیر تمام publisher ها را نشان می دهد حتی آنهایی که title ندارند هم در خروجی نمایش داده می شوند:

SELECT titles.title_id, titles.title, publishers.pub_name

FROM titles RIGHT OUTER JOIN publishers

ON titles.pub_id = publishers.pub_id

2-3) Full Outer Join

 تمام سطرهای هر دو جدول در خروجی می آیند چه در جدول دیگر متناظر داشته باشند چه نداشته باشند. به عنوان مثال دستور زیر تمام title ها و تمام publisher ها را نشان می دهد

SELECT titles.title_id, titles.title, publishers.pub_name

FROM titles FULL OUTER JOIN publishers

ON titles.pub_id = publishers.pub_id

3) Cross Join

نتیجه این Join تمام ترکیباتی است که از قرار گرفتن هر سطر از جدول اولی در کنار تمام سطرهای جدول دومی بدست می آید(همانند حاصلضرب دکارتی). بعنوان مثال authors Cross Join Publisher مجموعه تمام حالتهای ممکن author/publisher را در خروجی تولید می کند :

SELECT * FROM authors CROSS JOIN publishers

پیوستی برای این مطلب وجود ندارد
درباره نویسنده

من رسول شامحمدی هستم . تخصص من برنامه نویسی و محاسبات مونت کارلو هست. همیشه سعی میکنم در اینجا تجارب خودم را انتقال بدم. شماره تلفن من 09372846654 هست برای سفارش کار یا مشاوره

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

همکاری با ما

با سالها تجربه آماده ایم با شما همکاری گسترده ای داشته باشیم. همکاری با ما می تواند در قالب موارد زیر باشد
1) مشاوره در انجام تز دکتری در زمینه محاسبات هسته ای
2) مشاوره در انجام پایان نامه دوره کارشناسی ارشد در زمینه محاسبات هسته ای
3) ارائه مشاوره در جهت انجام پروژه های صنعتی
4) انجام طراحی ها و محاسبات مختلف
5) برگزاری دوره های تخصصی آموزش کد های هسته ای
6) ...
 با ما تماس بگیرید
09372846654-rasul.shamohamady@gmail.com
 

ما در شبکه های اجتماعی دنبال کنید.

گروه تلگرامی ویژه رفع اشکال کد های هسته ای و نرم افزار ها

این گروه صرفا برای بحث در باره کد ها و نرم افزارهای هسته ای می باشد لذا از بحث های نامرتبط خود داری فرمایید و با معرفی گروه به دوستان خود در مفید بودن بیشتر گروه همیار ما باشید. برای عضو شدن در این گروه تلگرامی با شماره 09372846654 در تلگرام پیام دهید.

کانال وب سایت مهندس شامحمدی

در این کانال آخرین اخبار منتشر شده در سایت نشر داده می شود.برای عضو شدن در این گروه تلگرامی با شماره 09372846654 در تلگرام پیام دهید

کانال آپارت ما

این کانال متعلق به وب سایت مهندس شامحمدی می باشد. تنها قسمتی از ویدئو های آموزشی در اینجا نشان داده است.