SQL Joins - الجداول المترابطة في SQL
جملة JOIN تُستخدم لدمج الصفوف من جدولين أو أكثر، بناءً على عمود مشترك بينهم. تُسهل عمليات استعلام البيانات المعقدة من أكثر من جدول وتساعد على تحليل البيانات بشكل أفضل.
مثال توضيحي
جدول Orders:
| OrderID | CustomerID | OrderDate |
|---|---|---|
| 10308 | 2 | 1996-09-18 |
| 10309 | 37 | 1996-09-19 |
| 10310 | 77 | 1996-09-20 |
جدول Customers:
| CustomerID | CustomerName | ContactName | Country |
|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
لاحظ أن عمود CustomerID في جدول Orders يشير إلى العمود نفسه في جدول Customers. إذن العلاقة بين الجدولين تتم من خلال هذا العمود.
INNER JOIN
باستخدام INNER JOIN نستطيع إحضار السجلات التي تحتوي على قيم متطابقة في الجدولين:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
الناتج سيكون كالتالي:
| OrderID | CustomerName | OrderDate |
|---|---|---|
| 10308 | Ana Trujillo Emparedados y helados | 1996-09-18 |
| 10365 | Antonio Moreno Taquería | 1996-11-27 |
| 10383 | Around the Horn | 1996-12-16 |
LEFT (OUTER) JOIN
يُرجع كل السجلات من الجدول الأيسر، مع السجلات المطابقة من الجدول الأيمن. إذا لم يوجد تطابق، تظهر القيم من الجدول الأيمن كـ NULL.
SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
RIGHT (OUTER) JOIN
يُرجع كل السجلات من الجدول الأيمن، مع السجلات المطابقة من الجدول الأيسر.
SELECT Customers.CustomerName, Orders.OrderID FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
FULL (OUTER) JOIN
يُرجع جميع السجلات عندما يوجد تطابق في أي من الجدولين، وتظهر القيم غير المطابقة كـ NULL.
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
نصائح عملية عند استخدام JOIN
- استخدم Aliases للأعمدة والجداول لتسهيل كتابة الاستعلامات الطويلة.
- تأكد من وجود الفهرسة (Indexes) على الأعمدة المشتركة لتحسين سرعة الاستعلام.
- يمكنك دمج أكثر من جدول باستخدام أكثر من JOIN في نفس الاستعلام.
- انتبه للقيم NULL عند استخدام LEFT أو RIGHT JOIN.
تمرين
ما هو الهدف الأساسي من استخدام SQL JOIN؟
- إنشاء جدول جديد من الجداول الموجودة.
- حذف الصفوف المكررة في جدول.
- ترتيب البيانات تصاعديًا أو تنازليًا.
- دمج الصفوف من جدولين أو أكثر استنادًا إلى عمود مشترك. ✅
تعليقات
إرسال تعليق