السلام عليكم
في برنامجي الجداول التالية
جدول الصفوف ويحتوي اسم ورقم الصف
جدول الطلاب ويحتوي اسماء وارقام الطلاب ورقم الصف
جدول الامتحانات واعتبر انه يحتوي رقم الامتحان واسمه ورقم الصف ورقم للمادة
جدول الدرجات ويحتوي رقم الامتحان ورقم الطالب والدرجة
تم اختيار هذا التصميم لاعطاء كل معلم القدرة على اضافة عدد الامتحانات للمواد والصفوف التي يعلمها فقد يرغب بامتحان واحد او اثنين او ثلاثة او كما يشاء.
للوصول لقائمة باسماء طلاب صف ودرجاتهم في كل الامتحانات التي قدموها مرة واحدة استعمل استعلام كالتالي
SELECT s.student_id, s.student_name, s.Section_id, g1.grade, g2.grade, g3.grade, g4.grade, g5.grade FROM (((((tbl_students AS s INNER JOIN tbl_grades AS g1 ON s.student_id=g1.student_id) INNER JOIN tbl_grades AS g2 ON s.student_id=g2.student_id) INNER JOIN tbl_grades AS g3 ON s.student_id=g3.student_id) INNER JOIN tbl_grades AS g4 ON s.student_id=g4.student_id) INNER JOIN tbl_grades AS g5 ON s.student_id=g5.student_id) WHERE g1.exam_id=1031 And g2.exam_id=1032 And g3.exam_id=1033 And g4.exam_id=1034 And g5.exam_id=1035
مع العلم أن عدد السجلات في جدول الامتحانات يتجاوز 500 سجل
وعدد السجلات في جدول الدرجات يتجاوز 20 ألف سجل
وعدد السجلات في جدول الطلاب بجوار 1000
وأن الاستعلام السابق يتم بناؤه باستعمال لغة البرمجة "ديناميكي" وقد يصل عدد جمل join إلى عشرين أو أكثر وعندها يصبح الاستعلام غاية في البطء
فهل لديكم أي أفكار للمساعدة في حل المشكلة ؟