INNER JOIN في SQL

SQL INNER JOIN

INNER JOIN في SQL

كلمة INNER JOIN تُستخدم لاختيار السجلات التي تحتوي على قيم متطابقة في كلا الجدولين. تُسهل عملية الربط بين الجداول وعرض البيانات المرتبطة بطريقة دقيقة ومنظمة.

جدول المنتجات (Products)

معرّف المنتج (ProductID) اسم المنتج (ProductName) معرّف الفئة (CategoryID) السعر (Price)
1Chais118
2Chang119
3Aniseed Syrup210
4Chef Anton's Cajun Seasoning22

جدول الفئات (Categories)

معرّف الفئة (CategoryID) اسم الفئة (CategoryName) الوصف (Description)
1Beveragesمشروبات: شاي، قهوة، عصائر، بيرة، وغيرها
2Condimentsصلصات حلوة وحامضة، توابل ومخللات
3Confectionsحلويات: كيك، بسكويت، وشوكولاتة

مثال على الاستعلام

SELECT ProductID, ProductName, CategoryName
FROM Products
INNER JOIN Categories 
ON Products.CategoryID = Categories.CategoryID;

ملاحظة: كلمة INNER JOIN تُرجع فقط الصفوف التي تحتوي على تطابق بين الجدولين. مثلاً المنتج "Chef Anton's Cajun Seasoning" بدون CategoryID لن يظهر في النتائج.

مثال على JOIN بين ثلاثة جداول

هذا هو جدول شركات الشحن (Shippers):

معرّف الشاحن (ShipperID) اسم شركة الشحن (ShipperName) رقم الهاتف (Phone)
1Speedy Express(503) 555-9831
2United Package(503) 555-3199
3Federal Shipping(503) 555-9931
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

باستخدام هذا الاستعلام، يمكنك عرض كل الطلبات مع أسماء العملاء والشركات المسؤولة عن الشحن.

تمارين عملية

ما الهدف من استخدام الكلمة المفتاحية INNER JOIN في SQL؟

  • إرجاع السجلات غير المتطابقة من الجدول الأيسر
  • إرجاع السجلات غير المتطابقة من الجدول الأيمن
  • إرجاع السجلات التي تحتوي فقط على قيم متطابقة في كلا الجدولين ✅

نصائح إضافية

  • استخدم Aliases لتسهيل كتابة الاستعلامات الطويلة.
  • تأكد من وجود فهرسة (Index) على الأعمدة المشتركة لتحسين سرعة الاستعلام.
  • يمكن دمج أكثر من جدول باستخدام أكثر من INNER JOIN في نفس الاستعلام.
  • راجع نتائج الاستعلامات باستخدام LIMIT أو TOP لتجنب عرض بيانات ضخمة عند الاختبار.

تعليقات