SQL Full Join چیست؟

sql full join tutorial
20 آبان 1403

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

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

این امکان مفید است وقتی که می‌خواهید گزارش‌های جامع‌تری از داده‌های خود تولید کنید و مطمئن باشید که هیچ رکوردی از دست نمی‌رود. استفاده از FULL JOIN برای زمانی که نیاز دارید اطلاعات کامل از هر دو جدول ببینید، بهینه است.

استفاده از SQL FULL JOIN

بگذارید با استفاده از مثالی ساده این مفهوم را توضیح دهیم. فرض کنید دو جدول به‌نام‌های customers و orders دارید. جدول customers شامل اطلاعات مربوط به مشتریان است و جدول orders مربوط به لیست سفارشات است.

برای اینکه بدانید کدام مشتری‌ها سفارش داده‌اند و کدام‌ها نداده‌اند، و همچنین برای اینکه تمامی سفارشات و مشتری‌ها را ببینید، می‌توانید از FULL JOIN استفاده کنید.


SELECT 
  customers.id, 
  customers.name, 
  orders.order_date
FROM 
  customers
FULL JOIN 
  orders 
ON 
  customers.id = orders.customer_id;

شرح کد SQL

SELECT: انتخاب ستون‌هایی که می‌خواهید در خروجی مشاهده کنید.

customers.id, customers.name, orders.order_date: ستون‌های انتخاب‌شده از دو جدول که می‌خواهیم در خروجی نمایش داده شوند.

FROM customers: جدول اصلی که داده‌ها از آن انتخاب می‌شود.

FULL JOIN orders: استفاده از FULL JOIN برای ترکیب ردیف‌های هر دو جدول.

ON customers.id = orders.customer_id: شرط تطابق داده‌ها میان دو جدول بر اساس شناسه مشتری.

سوالات متداول

؟

چرا از SQL FULL JOIN استفاده کنیم؟

؟

در چه مواقعی نباید از FULL JOIN استفاده کرد؟

؟

تفاوت بین INNER JOIN و FULL JOIN چیست؟