# فهم Joins في MySQL: شرح مفصل مع أمثلة
تعتبر عمليات الربط (Joins) في MySQL من الأدوات الأساسية التي تتيح للمستخدمين استخراج البيانات من جداول متعددة بطريقة منسقة وفعالة. تعمل Joins على دمج الصفوف من جداول مختلفة بناءً على علاقة مشتركة بينها. في هذا المقال، سنستعرض أنواع Joins المختلفة مع أمثلة توضيحية لكل نوع.
أنواع Joins في MySQL
1. INNER JOIN
تقوم INNER JOIN بإرجاع الصفوف التي تحتوي على قيم متطابقة في كلا الجدولين. إذا لم يكن هناك تطابق، فلن يتم تضمين الصف في النتيجة.
مثال:
لنفترض أن لدينا [شركة برمجة مصرية] جدولين: `employees` و`departments`.
-- جدول employees
| employee_id | name | department_id |
|-------------|-----------|---------------|
| 1 | Ahmed | 1 |
| 2 | Sara | 2 |
| 3 | John | NULL |
-- جدول departments
| department_id | department_name |
|---------------|-----------------|
| 1 | HR |
| 2 | IT |
| 3 | Marketing |
استخدام INNER JOIN لربط الجدولين:
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
النتيجة:
“`
| name | department_name |
|——-|—————–|
| Ahmed | HR |
| Sara | IT |
“`
2. LEFT JOIN [شركة برمجة مصرية] (أو LEFT OUTER JOIN)
تقوم LEFT JOIN بإرجاع جميع الصفوف من الجدول الأيسر (الأول)، مضافًا إليها الصفوف المتطابقة من الجدول الأيمن. إذا لم يكن هناك تطابق، يتم ملء القيم الناقصة بـ NULL.
مثال:
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
النتيجة:
“`
| name | department_name |
|——-|—————–|
| Ahmed | HR |
| Sara | IT |
| John | NULL |
“`
3. RIGHT JOIN (أو RIGHT OUTER JOIN)
تشبه RIGHT JOIN عملية LEFT JOIN، ولكنها تعيد جميع الصفوف من الجدول الأيمن، مضافًا إليها الصفوف المتطابقة من الجدول الأيسر.
مثال:
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.department_id;
النتيجة:
“`
| name | department_name |
|——-|—————–|
| Ahmed | HR |
| Sara | IT |
| NULL | Marketing |
“`
4. FULL JOIN
MySQL لا تدعم FULL JOIN بشكل مباشر، ولكن يمكن محاكاتها باستخدام LEFT JOIN وRIGHT JOIN مع UNION.
مثال:
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id
UNION
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.department_id;
النتيجة:
“`
| name | department_name |
|——-|—————–|
| Ahmed | HR |
| Sara | IT |
| John | NULL |
| NULL | Marketing |
“`
الخاتمة
تعد Joins أداة قوية في MySQL لدمج البيانات من جداول متعددة بطريقة فعالة. من خلال فهم الأنواع المختلفة منها كـ INNER JOIN، LEFT JOIN، RIGHT JOIN، وFULL JOIN، يمكنك تصميم استعلامات معقدة تلبي احتياجات العمل المختلفة. تأكد من اختيار النوع المناسب من Joins بناءً على الهيكل والعلاقات بين الجداول للحصول على أفضل أداء ونتائج دقيقة.
