کار با دستورات INNER JOIN و OUTER JOIN برای استعلام اطلاعات

در SQL، دستورات JOIN برای ارتباط دادن دو یا بیشتر جدول با هم براساس یک ستون مشترک استفاده می‌شود. معمولاً در د

توسط مدیر سایت در 31 تیر 1402

در SQL، دستورات JOIN برای ارتباط دادن دو یا بیشتر جدول با هم براساس یک ستون مشترک استفاده می‌شود. معمولاً در دستورات JOIN از کلمات کلیدی INNER JOIN و OUTER JOIN استفاده می‌شود.

INNER JOIN در واقع یک ترکیب از دو جدول است که فقط ردیف‌هایی که در هر دو جدول حضور دارند را نمایش می‌دهد. به عبارت دیگر، INNER JOIN تنها رکورد‌هایی را نمایش می‌دهد که مقدار ستون‌هایی که برای ارتباط استفاده شده اند در هر دو جدول وجود دارند. برای استفاده از INNER JOIN، دستور SQL زیر استفاده می‌شود:

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name = table2.column_name;

در این دستور، column_name یک یا چند ستون است که از جدول‌ها انتخاب می‌شود، table1 و table2 نام جدول‌هایی هستند که اطلاعات آنها در یک SELECT ترکیب شده‌اند، و column_name نام ستونی است که برای ارتباط دو جدول با هم استفاده شده است.

نوع دیگری از JOIN، OUTER JOIN است. OUTER JOIN به شما اجازه می‌دهد تا تمام ردیف‌های موجود در یک جدول را با ردیف‌های دیگری از جدول دیگر که در یک شرط مشخص شده است ترکیب کنید. در OUTER JOIN، هم اطلاعات مشترک (INNER JOIN) و هم اطلاعات غیرمشترک را نشان می‌دهد.

دو نوع OUTER JOIN وجود دارد: LEFT OUTER JOIN و RIGHT OUTER JOIN. در LEFT OUTER JOIN، تمام ردیف‌های موجود در جدول سمت چپ (table1) به همراه ردیف‌های مشترک با جدول سمت راست (table2) نشان داده می‌شود. در RIGHT OUTER JOIN، تمام ردیف‌های موجود در جدول سمت راست (table2) به همراه ردیف‌های مشترک با جدول سمت چپ (table1) نشان داده می‌شود.

برای استفاده از OUTER JOIN، دستور SQL زیر را می‌توانید استفاده کنید:

SELECT column_name(s)

FROM table1

LEFT OUTER JOIN table2

ON table1.column_name = table2.column_name;

در این دستور، column_name، table1 و table2 به صورت مشابه INNER JOIN بکار برده شده‌اند. تنها تفاوت اصلی این است که برای LEFT OUTER JOIN از کلمه کلیدی LEFT استفاده شده است. به همین ترتیب، برای RIGHT OUTER JOIN از RIGHT استفاده می‌شود.

در کل، استفاده از INNER JOIN و OUTER JOIN در SQL به شما این امکان را می‌دهد که به سادگی اطلاعات از جدول‌های مختلف را ترکیب کنید و داده‌هایی که نیاز دارید را بازیابی کنید.



استفاده از INNER JOIN برای ادغام دو جدول به هم

INNER JOIN یکی از مهمترین ابزارهای SQL برای گرفتن داده هایی از چندین جدول است. این عمل در اغلب جداول با داده های مرتبط انجام می شود. INNER JOIN، رکوردهایی که در هر جدولی وجود دارند، را با یکدیگر مقایسه می کند و تنها رکوردهایی را نمایش می دهد که در هر دو جدول وجود دارند. به عبارت دیگر، INNER JOIN دو جدول را بر اساس مشخصات مشترک با هم ادغام می کند.

برای استفاده از INNER JOIN، باید بدانید که در دو جدولی که قرار است با هم ادغام شوند، ستون هایی با نام های مشابه یا یکسان وجود دارند. به عنوان مثال، فرض کنید که شما دو جدول به نام "customers" و "orders" دارید و هر دو دارای ستونی به نام "customer_id" هستند. در این صورت می توانید INNER JOIN را بر اساس ستون "customer_id" انجام دهید تا رکوردهای مرتبط با هر مشتری در هر دو جدول را با هم ادغام کنید.

استفاده از INNER JOIN برای ادغام دو جدول به هم می تواند به شما کمک کند تا داده های مورد نظر خود را از چندین جدول در همان زمان دریافت کنید. همچنین، این فرآیند برای انجام عملیات مبتنی بر داده های مختلف مفید است و به شما امکان می دهد تا داده ها را با یکدیگر مقایسه کنید و نتایج مورد نظر خود را با دقت بالا بدست آورید.



پیداکردن ردیف های تطبیق نکرده با استفاده از OUTER JOIN

در دنیای پایگاه داده ها، ارتباطات متفاوتی بین جداول وجود دارد که باید با استفاده از JOIN، آن ها را با هم ترکیب کرد. اگر یک ردیف در یک جدول وجود داشته باشد ولی در جدول دیگر نباشد، می توان از OUTER JOIN استفاده کرد.

در OUTER JOIN، تمام ردیف های جدول اول به صورت کامل با همه ردیف های جدول دوم ترکیب می شود. اگر ردیف های مشابهی در جدول دوم وجود داشته باشد، اطلاعات متناظر Attach می شود. در غیر اینصورت، برای ردیف هایی که در جدول دوم وجود ندارند، مقدار NULL قرار داده می شود.

OUTER JOIN در دو نوع LEFT و RIGHT موجود است. LEFT OUTER JOIN تمام ردیف های جدول اول را با همه ردیف های جدول دوم ترکیب می کند. در این نوع JOIN، اگر ردیف مشابهی در جدول دوم وجود نداشته باشد، مقدار NULL قرار داده می شود.

RIGHT OUTER JOIN عکس LEFT OUTER JOIN را دارد. در این نوع JOIN، تمام ردیف های جدول دوم با همه ردیف های جدول اول ترکیب می شود. اگر ردیف مشابهی در جدول اول وجود نداشته باشد، مقدار NULL قرار داده می شود.

استفاده از OUTER JOIN به عنوان جایگزین INNER JOIN، در مواردی مفید است که به دنبال پیدا کردن رکوردهایی هستید که در یک جدول وجود دارد ولی در جدول دیگر نیست. این قابلیت در پرس و جو های پیچیده و ارتباطات بین چندین جدول، بسیار کاربردی است.



نحوه استفاده از INNER JOIN به عنوان یک فیلتر

INNER JOIN یکی از رایج‌ترین نوع فیلترهای استفاده شده در SQL است که برای پیوند دو جدول و بازیابی اطلاعات مشترک آنها استفاده می‌شود. INNER JOIN به عنوان یک فیلتر بین دو جدول عمل می‌کند و ما می‌توانیم درخواستی برای بازیابی اطلاعات مشترک بین دو جدول بسازیم.

برای استفاده از INNER JOIN، ابتدا باید دو جدولی که می‌خواهیم اطلاعات مشترک آنها را بازیابی کنیم را انتخاب کنیم. سپس باید پارامترهای INNER JOIN را تنظیم کنیم که شامل نوع JOIN (نوع پیوند دو جدول) و مشخص کردن بر اساس کدام فیلد دو جدول قرار است با یکدیگر پیوند بخورند، می‌شود.

مثلا، فرض کنید که ما دو جدول داریم. یکی از جداول شامل اطلاعات مربوط به مشتریان است و جدول دیگر شامل نوع محصولاتی که مشتریان می‌خرند، است. در این صورت، INNER JOIN برای پیدا کردن مشتریانی که محصول مشخصی را خریداری کرده‌اند، استفاده می‌شود. ما به جمع زدن فیلدهای مشتریان و محصولات می‌پردازیم که در دو جدول متفاوت قرار دارند، اما به واسطه INNER JOIN، می‌توانیم فقط اطلاعات مشخصی که مورد نیازمان است را بازیابی کنیم.

برای خلاصه‌تر شدن خروجی INNER JOIN، ما می‌توانیم WHERE یا حتی GROUP BY را همراه با آن استفاده کنیم تا داده‌های پیچیده را بسیار ساده‌تر کنیم. در نهایت، INNER JOIN ابزار قدرتمندی برای بازیابی داده‌های مورد نظرمان است که باید به دقت در نظر گرفته شود.



پیدا کردن مجموعه داده های مشترک در جدول های مختلف با INNER JOIN

کاربرد Inner Join در پایگاه داده ها، به دلیل ارتباط شدید موجود بین جداول، بسیار مهم است. در واقع، Inner Join یکی از روش هایی است که ما می توانیم از آن برای ادغام داده ها در پایگاه داده استفاده کنیم.

Inner Join باعث ادغام داده ها از دو جدول بر اساس مجموعه داده های مشترک شان می شود. با استفاده از این روش، ما می توانیم مجموعه داده های مشترک در دو جدول مختلف را پیدا کنیم و به صورت یک جدول ترکیب شده نمایش دهیم.

برای استفاده از Inner Join باید مشخص کنیم کدام فیلدها با یکدیگر ارتباط دارند. ما می توانیم این ارتباط را با استفاده از شناسه های یکتا در دو جدول تعیین کنیم. برای مثال، فیلد ID می تواند یک شناسه یکتا بین دو جدول باشد که ما مستقیماً می توانیم براساس آن داده ها را ادغام کنیم.

در نهایت، ما با استفاده از این روش می توانیم به سادگی مجموعه داده های مشترک را در دو جدول پیدا کرده و از آنها برای رسیدن به نتایج مناسب استفاده کنیم. به عنوان مثال، ما می توانیم از Inner Join برای ارتباط بین جدول های سفارشات مشتریان و جدول مشتریان استفاده کنیم و به این ترتیب، اطلاعات مشتری و سفارشاتش را در یک جدول ترکیب کنیم.



نحوه استفاده از OUTER JOIN برای کشف مفقودی در داده ها

جوین، یکی از مهمترین مفاهیم در پردازش داده ها است که به کاربران این امکان را می دهد تا از چندین جدول برای اطلاعاتشان استفاده کنند. روش جوین، یک روش ترکیب دو جدول با استفاده از یک یا چند ستون مشترک است. در این روش، وجود ردیف هایی که در هر دو جدول وجود دارند، موجب تولید رکورد جدیدی می شود که در آن اطلاعات دو جدول در کنار هم قرار گرفته اند.

یکی از انواع جوین ها، جوین خارجی (Outer Join) است. در این نوع جوین، در صورتی که برای یکی از جدول ها داده مربوط به یک سطر در دیگر جدول موجود نباشد، امکان دارد که این ردیف به صورت خالی در نهایت اطلاعات نمایش داده شود. به این صورت که تمام ردیف های موجود در یکی از جدول ها همانند حالت استاندارد جوین در نظر گرفته می شوند، اما ردیف های موجود در جدول دیگر که نماینده ای برای آن ها در جدول اول نیستند، همانند حالتی که ردیفی برای اطلاعات مورد نیاز موجود نیست، با مقدار خالی در جدول نهایی نمایش داده می شوند. این جستجو از طریق LEFT OUTER JOIN برای جفت یک جدول با جدولی دیگر انجام می شود که در آن هر ردیف از جدول اول حتماً حضور می یابد.

عمدتاً در صورتی استفاده می شود که یک جدول شامل اطلاعات اصلی و جدول دیگر شامل اطلاعات جانبی می باشد. در صورتی که در جدول اصلی اطلاعات مفقودی وجود داشته باشد، می توان از OUTER JOIN برای کشف آن استفاده کرد. با این روش می توان شناسایی کرد که کدام ردیف ها در جدول جانبی وجود ندارند و یا حتی در جدول اصلی اطلاعاتی برای آن ها وجود ندارد. به عبارت دیگر، OUTER JOIN به شما امکان می دهد تا داده های موجود در جدول های مختلف را با هم ترکیب کنید و در نهایت مفقودی های داده های خود را شناسایی کنید.


استعلام
آخرین مطالب
مقالات مشابه
نظرات کاربرن