معمولاً وقتی میخواهید اطلاعاتی را که در دو جدول مختلف دارید ترکیب کنید، از نوعی از 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
: شرط تطابق دادهها میان دو جدول بر اساس شناسه مشتری.