Левое объединение не работает, чтобы включить пользователей, которые не попадают в условия объединения, отчет об активности просмотра пользователями - PullRequest
0 голосов
/ 10 июля 2019

Отчет об активности в Moodle для курса показывает активность, просмотры и последний доступ.Мы требуем, чтобы эти данные были разбиты на группы, присутствующие в курсе.Сколько просмотров было сделано для действия уникальными пользователями, присутствующими в определенных группах.Также должны включать данные пользователей, не входящих в какие-либо группы, при этом поле группы должно быть пустым

. Для этого нам удалось написать следующий запрос.Пользователи, которые не представлены ни в одной из групп курсов, не учитываются, даже после использования левого соединения

SELECT ug.groupid, grps.name, slog.contextinstanceid as cmid, COUNT('x') AS numviews, 
COUNT(DISTINCT slog.userid) AS distinctusers, MAX(slog.timecreated) AS lasttime
FROM  prefix_logstore_standard_log AS slog
LEFT JOIN prefix_groups_members AS ug ON ug.userid = slog.userid 
INNER JOIN prefix_groups AS grps ON grps.id=ug.groupid
WHERE grps.courseid = 2156
AND slog.courseid = 2156
AND slog.anonymous = 0
AND slog.crud = 'r'
AND slog.contextlevel = 70
GROUP BY slog.contextinstanceid, ug.groupid

Ожидаемый результат - список действий с представлениями и время последнего доступа, отсортированные / разделенные по группам, этотакже должен включать представления действий тех пользователей, которые не входят ни в одну группу, поле groupid должно быть просто пустым, но фактический вывод содержит только данные представления пользователей, присутствующих в группах.

...