البرمجة

دمج بيانات قاعدة البيانات باستخدام استعلام SQL JOIN

عند الحاجة إلى جمع بيانات من جدولين مختلفين في قاعدة البيانات باستخدام استعلام SQL، يمكن استخدام العبارة JOIN للتحقق من الصفوف التي تتطابق وفقًا لشرط معين. في هذه الحالة، يمكنك استخدام JOIN للربط بين جدولي grades وscholars باستناد إلى الحقل id.

للقيام بذلك، يمكنك استخدام استعلام SQL مشابه للتالي:

sql
SELECT grades.subject_code, grades.subject_description, grades.midterm, grades.final, grades.final_remarks, scholars.Lastname, scholars.Firstname, scholars.Middlename FROM grades JOIN scholars ON grades.id = scholars.id;

يقوم هذا الاستعلام بتحديد الحقول التي تريد استرجاعها من الجدولين (grades وscholars) باستخدام SELECT. ثم يتم استخدام FROM لتحديد الجدولين المعنيين بالاستعلام.

يتم استخدام JOIN للربط بين الجدولين وفقًا لشرط الربط الذي يتم تحديده في ON. في هذه الحالة، يتم ربط الجدولين باستخدام الحقل id.

هذا الاستعلام سيُرجع البيانات المطلوبة من كل جدول، وستكون النتيجة مرتبطة بشكل صحيح باستخدام الحقل المشترك id. يمكنك تعديل الاستعلام وفقًا لاحتياجاتك الخاصة إذا كنت بحاجة إلى المزيد من الحقول أو تعديل الشروط.

المزيد من المعلومات

بالطبع، دعنا نوسع على الاستعلام ونقدم المزيد من المعلومات حول كيفية تعديله بحيث يمكن أن يكون أكثر شمولاً وفعالية. يمكننا أيضًا التحدث عن بعض النقاط الإضافية المهمة.

أولاً وقبل كل شيء، يجب أن نتحقق من كيف يتم تمثيل الأسماء في جدول scholars. بناءً على الاستعلام السابق، قمت بجلب الحقول Lastname، Firstname، وMiddlename. إذا كانت هذه الحقول تحتوي على معلومات الاسم بشكل منفصل، يمكنك دمجها في حقل واحد باستخدام الدالة CONCAT في SQL. إليك كيفية تحسين الاستعلام:

sql
SELECT grades.subject_code, grades.subject_description, grades.midterm, grades.final, grades.final_remarks, CONCAT(scholars.Firstname, ' ', scholars.Middlename, ' ', scholars.Lastname) AS fullname FROM grades JOIN scholars ON grades.id = scholars.id;

في هذا الاستعلام، قمت بدمج الأسماء باستخدام CONCAT وأعطيت الحقل الناتج اسمًا جديدًا باستخدام AS fullname.

ثانيًا، إذا كنت تحتاج إلى تحديد نطاق محدد من النتائج أو تحديد البيانات بناءً على شروط إضافية، يمكنك استخدام عبارات WHERE. على سبيل المثال، إذا كنت تريد فقط السجلات التي تحمل تقديرًا معينًا، يمكنك إضافة شرط WHERE إلى الاستعلام:

sql
WHERE grades.final_remarks = 'Excellent';

هذا سيقوم بتحديد السجلات التي تحمل تقديرًا معينًا فقط.

إضافيًا، يمكنك أيضًا تحسين أداء الاستعلام باستخدام فهرس على حقل الربط (id) في الجدول scholars، إذا كان ذلك مناسبًا لهيكل البيانات واحتياجات الأداء.

زر الذهاب إلى الأعلى