gradebook MDL-20946 switched from using IN to using JOIN in the quiries

This commit is contained in:
Andrew Davis (andyjdavis)
2011-03-30 13:31:47 +08:00
parent 6d276b3254
commit 6c41ae0a0c
2 changed files with 12 additions and 12 deletions
+6 -6
View File
@@ -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";
+6 -6
View File
@@ -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