5.1 SQL - JOIN
SQL JOIN
جملة JOIN في SQL تُستخدم لدمج الصفوف (rows) من جدولين أو أكثر بناءً على علاقة بين الأعمدة المشتركة بينهم.
عادةً، العلاقة بتكون بين مفتاح أساسي (Primary Key) في جدول ومفتاح خارجي (Foreign Key) في جدول آخر.
أنواع JOIN:
| النوع | الوصف |
|---|---|
INNER JOIN |
يعرض الصفوف اللي فيها تطابق بين الجدولين |
LEFT JOIN |
يعرض كل الصفوف من الجدول الأيسر + المطابقة من الجدول الأيمن |
RIGHT JOIN |
يعرض كل الصفوف من الجدول الأيمن + المطابقة من الجدول الأيسر |
FULL OUTER JOIN |
يعرض جميع الصفوف من الجدولين، سواء كان فيه تطابق أو لا |
قاعدة البيانات المستخدمة:
جدول Customers
| CustomerID | CustomerName | Country |
|---|---|---|
| 1 | Alfreds | Germany |
| 2 | Ana Trujillo | Mexico |
جدول Orders
| OrderID | CustomerID | OrderDate |
|---|---|---|
| 10308 | 2 | 2024-01-01 |
| 10309 | 37 | 2024-01-03 |
1. INNER JOIN
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
⬅ يعرض فقط العملاء اللي عندهم طلبات (تطابق بين الجدولين).
2. LEFT JOIN
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
⬅ يعرض كل العملاء، سواء كان عندهم طلبات أو لا.
3. RIGHT JOIN
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
⬅ يعرض كل الطلبات، سواء كان لها عملاء مطابقين أو لا.
4. FULL OUTER JOIN (غير مدعومة في MySQL مباشرة)
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
⬅ يعرض جميع العملاء والطلبات حتى بدون تطابق.
ملاحظات مهمة:
- يفضل استخدام
aliasلتسهيل الكتابة في الاستعلامات الطويلة. - ممكن تكتب الأعمدة كـ
table.columnلتوضيح المصدر.
تعليقات
إرسال تعليق