From 6c41ae0a0c6c9be40abfda810deb48ccbd524b9d Mon Sep 17 00:00:00 2001 From: "Andrew Davis (andyjdavis)" Date: Wed, 30 Mar 2011 13:31:47 +0800 Subject: [PATCH] gradebook MDL-20946 switched from using IN to using JOIN in the quiries --- grade/lib.php | 12 ++++++------ grade/report/grader/lib.php | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/grade/lib.php b/grade/lib.php index e226fde5b9b..5e7986cd110 100644 --- a/grade/lib.php +++ b/grade/lib.php @@ -109,13 +109,13 @@ class graded_users_iterator { $users_sql = "SELECT u.* $ofields FROM {$CFG->prefix}user u $groupsql - WHERE u.id IN ( + JOIN ( SELECT DISTINCT ra.userid FROM {$CFG->prefix}role_assignments ra WHERE ra.roleid $gradebookroles AND ra.contextid $relatedcontexts - ) - AND u.deleted = 0 + ) rainner ON rainner.userid = u.id + WHERE u.deleted = 0 $groupwheresql ORDER BY $order"; @@ -129,13 +129,13 @@ class graded_users_iterator { FROM {$CFG->prefix}grade_grades g JOIN {$CFG->prefix}user u ON g.userid = u.id $groupsql - WHERE u.id IN ( + JOIN ( SELECT DISTINCT ra.userid FROM {$CFG->prefix}role_assignments ra WHERE ra.roleid $gradebookroles AND ra.contextid $relatedcontexts - ) - AND u.deleted = 0 + ) rainner ON rainner.userid = u.id + WHERE u.deleted = 0 AND g.itemid IN ($itemids) $groupwheresql ORDER BY $order, g.itemid ASC"; diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 578fa766bf5..d5fa06577d9 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -350,13 +350,13 @@ class grade_report_grader extends grade_report { FROM {$CFG->prefix}user u $this->groupsql $sortjoin - WHERE u.id IN ( + JOIN ( SELECT DISTINCT ra.userid FROM {$CFG->prefix}role_assignments ra WHERE ra.roleid IN ($this->gradebookroles) AND ra.contextid " . get_related_contexts_string($this->context) . " - ) - AND u.deleted = 0 + ) rainner ON rainner.userid = u.id + WHERE u.deleted = 0 $this->groupwheresql ORDER BY $sort"; @@ -1154,13 +1154,13 @@ class grade_report_grader extends grade_report { JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id JOIN {$CFG->prefix}user u ON u.id = g.userid $groupsql - WHERE gi.courseid = $this->courseid - AND u.id IN ( + JOIN ( SELECT DISTINCT ra.userid FROM {$CFG->prefix}role_assignments ra WHERE ra.roleid IN ($this->gradebookroles) AND ra.contextid " . get_related_contexts_string($this->context) . " - ) + ) rainner ON rainner.userid = u.id + WHERE gi.courseid = $this->courseid AND u.deleted = 0 AND g.finalgrade IS NOT NULL $groupwheresql