🗄️ شرح SQL وقواعد البيانات

UNION وأنواع JOIN المتقدّمة

UNION

يدمج نتائج استعلامين في قائمة واحدة (يحذف المكرّر):

SELECT name FROM customers
UNION
SELECT name FROM suppliers;

UNION ALL يُبقي المكرّر (أسرع):

SELECT city FROM customers
UNION ALL
SELECT city FROM suppliers;

💡 شرط UNION: نفس عدد الأعمدة وأنواع متوافقة في الاستعلامين.

RIGHT JOIN

عكس LEFT — يجلب كل صفوف الجدول الأيمن:

SELECT users.name, orders.total
FROM orders
RIGHT JOIN users ON orders.user_id = users.id;

FULL OUTER JOIN

كل صفوف الجدولين مع تطابق حيثما وُجد (غير مدعوم في MySQL مباشرة — يُحاكى بـ UNION):

SELECT * FROM a
FULL OUTER JOIN b ON a.id = b.a_id;

SELF JOIN

ربط الجدول بنفسه — مثل الموظّف ومديره:

SELECT e.name AS الموظف, m.name AS المدير
FROM employees e
JOIN employees m ON e.manager_id = m.id;

CROSS JOIN

ناتج ضربي: كل صف مع كل صف (احذر الأحجام الكبيرة):

SELECT a.size, b.color FROM sizes a CROSS JOIN colors b;

ملخّص أنواع JOIN

النوعيعيد
INNERالمتطابق في الجدولين
LEFTكل الأيسر + المتطابق
RIGHTكل الأيمن + المتطابق
FULLكل الصفوف من الجانبين

🎯 التالي: الاستعلامات الفرعية (Subqueries).