تخطَّ إلى المحتوى

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

ربط الجداول (JOIN) والتجميع

الدرس 5 من 32· ⏱ 1 دقائق قراءة· 🗓 آخر تحديث: ٢٦ يونيو ٢٠٢٦

لماذا JOIN؟

البيانات موزّعة على عدة جداول. مثلًا جدول users وجدول orders. نربطهما لنرى طلبات كل مستخدم.

-- orders فيه عمود user_id يشير إلى users.id
SELECT users.name, orders.total
FROM orders
INNER JOIN users ON orders.user_id = users.id;

INNER JOIN

يجلب الصفوف التي لها تطابق في الجدولين فقط.

LEFT JOIN

يجلب كل صفوف الجدول الأيسر، حتى بلا تطابق (تظهر NULL):

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

مفيد لمعرفة المستخدمين الذين لم يطلبوا شيئًا.

دوال التجميع (Aggregate)

SELECT COUNT(*) FROM users;        -- عدد الصفوف
SELECT AVG(age) FROM users;        -- المتوسط
SELECT MAX(price) FROM products;   -- الأكبر
SELECT SUM(total) FROM orders;     -- المجموع

التجميع (GROUP BY)

نحسب قيمة لكل مجموعة:

-- عدد المستخدمين في كل مدينة
SELECT city, COUNT(*) AS count
FROM users
GROUP BY city;

التصفية بعد التجميع (HAVING)

SELECT city, COUNT(*) AS count
FROM users
GROUP BY city
HAVING COUNT(*) > 10;

💡 WHERE يصفّي الصفوف قبل التجميع، وHAVING يصفّي المجموعات بعده.

🎯 التالي: تصفية النتائج بدقّة باستخدام WHERE والعوامل المنطقية.

شرح ربط الجداول (JOIN) والتجميع — SQL وقواعد البيانات بالعربي
ربط الجداول (JOIN) والتجميعSQL وقواعد البيانات بالعربي · The Code Fix

📚 لمزيد من التعمّق في SQL وقواعد البيانات، راجِع توثيق SQL في PostgreSQL.

هل كان هذا الدرس مفيدًا؟