الربط الأساسي - الجزء الأول
جزء من قسم الأساسيات في رحلة SQL على Coddy — الدرس 43 من 72.
حتى الآن، تناولنا مشكلات تتعلق بجدول واحد. الآن سنبحث في كيفية التعامل مع جداول متعددة.
لنفترض أن لدينا الجداول التالية:
الدورات
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
المحاضرون
| lecturer_id | الاسم |
|---|---|
| 1 | جوناس |
| 2 | ماليدوس |
المهمة هي عرض كل دورة مع اسم المحاضر المقابل لها.
هناك طريقتان لتحقيق ذلك. لكل خيار، نقوم بمطابقة كل صف في جدول واحد مع الجدول الآخر. نتحقق من شرط يجب استيفاؤه، وإذا تم استيفاء الشرط، نقوم بدمج الصفين في صف واحد. النتيجة المطلوبة لكلا الخيارين:
| معرف_الدورة | اسم_المحاضر |
|---|---|
| 1 | جوناس |
| 2 | جوناس |
| 3 | ماليدوس |
الخيار 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idهنا نكتب جدولين في الكلمة المفتاحية FROM، وفي جملة WHERE نطلب أن يكون lecturer_id لكلا السجلين متطابقاً. وفي جملة SELECT نكتب الآن table.column لكي تعرف قاعدة البيانات من أين تجلب العمود.
الخيار 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idبدلاً من WHERE نستخدم JOIN table ON condition
هذا النوع من الربط يسمى أيضاً بالربط الداخلي (inner join).
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>grades</strong>:<strong>course_id</strong>,<strong>student_id</strong>,<strong>grade</strong><strong>students</strong>:<strong>id</strong>,<strong>name</strong>
أنشئ استعلامًا يجلب student_name و course_id و student_id و grade في جدول واحد. رتب النتيجة حسب grade بترتيب تصاعدي.
ورقة مرجعية
لدمج البيانات من جداول متعددة، استخدم إما صيغة الفاصلة مع WHERE أو صيغة JOIN:
الخيار 1: صيغة الفاصلة مع WHERE
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.id = table2.idالخيار 2: صيغة JOIN
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.id = table2.idاستخدم صيغة table.column لتحديد الجدول الذي ينتمي إليه العمود عند الاختيار من جداول متعددة. يسمى هذا النوع من الربط بالربط الداخلي (inner join).
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGE