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

اولین و تخصصی ترین وب سایت تخصصی آموزش کد های هسته ای

انواع join ها در SQL

1395-08-24
بازدید: 1849

انواع 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


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

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


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

در این کانال اطلاعیه های مربوط به کارگاه های آموزشی و دوره های آنلاین و حضوری منتشر می شود


گروه تلگرامی پشتیبانی کارگاه ها و کلاس ها

در این کانال آخرین اخبار منتشر شده در سایت نشر داده می شود


گروه تلگرامی آخرین آموزش های منتشر شده در سایت

در این کانال آخرین اخبار منتشر شده در سایت نشر داده می شود


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

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


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

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

نظرات کاربران

افزودن نظر