MDL-26371 sql - avoid distinct + text in lesson essay and report

This commit is contained in:
Eloy Lafuente (stronk7)
2011-02-13 01:45:18 +01:00
parent 6d12bf2020
commit 185f71c40d
2 changed files with 20 additions and 14 deletions
+10 -7
View File
@@ -31,12 +31,15 @@
if ($essayattempts = get_records_select('lesson_attempts', 'pageid IN('.implode(',', array_keys($pages)).')')) {
// Get all the users who have taken this lesson, order by their last name
if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) {
$sql = "SELECT DISTINCT u.*
FROM {$CFG->prefix}lesson_attempts a
INNER JOIN {$CFG->prefix}user u ON u.id = a.userid
INNER JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id
INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid}
WHERE a.lessonid = '$lesson->id'
$sql = "SELECT u.*
FROM {$CFG->prefix}user u
JOIN (
SELECT DISTINCT u.id
FROM {$CFG->prefix}lesson_attempts a
JOIN {$CFG->prefix}user u ON u.id = a.userid
JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id
JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid}
WHERE a.lessonid = '$lesson->id') ui ON u.id = ui.id
ORDER BY u.lastname";
} else {
$sql = "SELECT u.*
@@ -367,4 +370,4 @@
}
print_footer($course);
?>
?>
+10 -7
View File
@@ -17,14 +17,17 @@
$nothingtodisplay = false;
list($cm, $course, $lesson) = lesson_get_basics($id);
if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) {
$sql = "SELECT DISTINCT u.*
FROM {$CFG->prefix}lesson_attempts a
INNER JOIN {$CFG->prefix}user u ON u.id = a.userid
INNER JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id
INNER JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid}
WHERE a.lessonid = '$lesson->id'
$sql = "SELECT u.*
FROM {$CFG->prefix}user u
JOIN (
SELECT DISTINCT u.id
FROM {$CFG->prefix}lesson_attempts a
JOIN {$CFG->prefix}user u ON u.id = a.userid
JOIN {$CFG->prefix}groups_members gm ON gm.userid = u.id
JOIN {$CFG->prefix}groupings_groups gg ON gm.groupid = {$cm->groupingid}
WHERE a.lessonid = '$lesson->id') ui ON u.id = ui.id
ORDER BY u.lastname";
} else {
$sql = "SELECT u.*