SQL Joins
زبان SQL برای ترکیب دادهها از چند جدول مختلف، از JOINs استفاده میکنیم.
JOIN باعث میشه رکوردهای مرتبط از جداول مختلف براساس یک ستون مشترک به هم وصل بشن.
🔹 انواع اصلی JOIN
-
INNER JOIN → فقط رکوردهایی رو میاره که در هر دو جدول مقدار مشترک دارن.
-
LEFT JOIN (LEFT OUTER JOIN) → تمام رکوردهای جدول سمت چپ + رکوردهای مطابق در جدول سمت راست.
-
RIGHT JOIN (RIGHT OUTER JOIN) → تمام رکوردهای جدول سمت راست + رکوردهای مطابق در جدول سمت چپ.
-
FULL JOIN (FULL OUTER JOIN) → تمام رکوردها از هر دو جدول، حتی اگر مطابق نداشته باشن.
🔹 ساختار کلی
🔹 مثال روی INNER JOIN
جدول: 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 | 1 | 200 |
کوئری:
📌 خروجی:
name | amount |
---|---|
Ali | 500 |
Sara | 300 |
Ali | 200 |
🔹 LEFT JOIN
📌 خروجی: تمام مشتریها + سفارشهایشان (اگر وجود داشته باشه).
name | amount |
---|---|
Ali | 500 |
Sara | 300 |
Ali | 200 |
Reza | NULL |
🔹 RIGHT JOIN
📌 خروجی: تمام سفارشها + نام مشتری (اگر وجود داشته باشه).
🔹 FULL JOIN
📌 خروجی: همه مشتریها و همه سفارشها، حتی اونهایی که مطابقت ندارن.
✅ نکات مهم
-
INNER JOIN رایجترین نوع JOIN هست.
-
وقتی میخواید همه رکوردهای یک جدول حفظ بشن حتی بدون داده مرتبط، از LEFT JOIN یا RIGHT JOIN استفاده کنید.
-
بعضی دیتابیسها مثل MySQL مستقیماً FULL JOIN رو پشتیبانی نمیکنن؛ باید با UNION شبیهسازی بشه.