SQL FULL OUTER JOIN Keyword
زبان SQL وقتی بخوایم همه رکوردهای هر دو جدول رو برگردونیم، چه مطابق داشته باشن چه نه، از FULL OUTER JOIN استفاده میکنیم.
🔹 ساختار کلی
-
همه رکوردهای table1 و table2 نمایش داده میشن.
-
اگر مطابق وجود داشته باشه → دادههای هر دو جدول کنار هم میاد.
-
اگر در یکی از جدولها دادهای مطابق نباشه → ستونهای جدول دیگه مقدار
NULL
خواهند داشت.
🔹 مثال ساده
جدول: Customers
id | name | city |
---|---|---|
1 | Ali | Tehran |
2 | Sara | Mashhad |
3 | Reza | Tabriz |
جدول: Orders
order_id | customer_id | amount |
---|---|---|
101 | 1 | 500 |
102 | 2 | 300 |
103 | 4 | 700 |
کوئری:
📌 خروجی:
name | amount |
---|---|
Ali | 500 |
Sara | 300 |
Reza | NULL |
NULL | 700 |
توضیح:
-
علی و سارا مشتریانی هستن که سفارش دارن → دادههاشون ترکیب شد.
-
رضا مشتریه اما سفارشی نداره → مقدار amount برای اون
NULL
شد. -
سفارش با customer_id = 4 مشتری نداره → مقدار name براش
NULL
شد.
🔹 FULL JOIN در دیتابیسها
-
در SQL Server و Oracle پشتیبانی میشه.
-
در MySQL مستقیماً وجود نداره! (باید با ترکیب
LEFT JOIN
وRIGHT JOIN
و استفاده ازUNION
شبیهسازی بشه).
مثال در MySQL:
✅ نکات مهم
-
FULL OUTER JOIN
ترکیبی از LEFT JOIN و RIGHT JOIN هست. -
هر دو جدول کامل نمایش داده میشن.
-
اگر مطابق وجود نداشته باشه، مقدار ستونها
NULL
خواهد بود.