INNER JOIN في SQL
كلمة INNER JOIN تُستخدم لاختيار السجلات التي تحتوي على قيم متطابقة في كلا الجدولين. تُسهل عملية الربط بين الجداول وعرض البيانات المرتبطة بطريقة دقيقة ومنظمة.
جدول المنتجات (Products)
| معرّف المنتج (ProductID) | اسم المنتج (ProductName) | معرّف الفئة (CategoryID) | السعر (Price) |
|---|---|---|---|
| 1 | Chais | 1 | 18 |
| 2 | Chang | 1 | 19 |
| 3 | Aniseed Syrup | 2 | 10 |
| 4 | Chef Anton's Cajun Seasoning | 22 |
جدول الفئات (Categories)
| معرّف الفئة (CategoryID) | اسم الفئة (CategoryName) | الوصف (Description) |
|---|---|---|
| 1 | Beverages | مشروبات: شاي، قهوة، عصائر، بيرة، وغيرها |
| 2 | Condiments | صلصات حلوة وحامضة، توابل ومخللات |
| 3 | Confections | حلويات: كيك، بسكويت، وشوكولاتة |
مثال على الاستعلام
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) |
|---|---|---|
| 1 | Speedy Express | (503) 555-9831 |
| 2 | United Package | (503) 555-3199 |
| 3 | Federal 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 لتجنب عرض بيانات ضخمة عند الاختبار.
تعليقات
إرسال تعليق