انواع join ها در SQL

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



انواع 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 هست برای سفارش کار یا مشاوره

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

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

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

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


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

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


کانال نماشا ما

تماشا یک سرویس اشتراک گذاری فیلم های آموزشی می باشد. با مراجعه به کانال برخی از فیلم ها را مشاهده خواهید کرد