Как отобразить всех студентов даже если их нету в глобальных группах

Re: Как отобразить всех студентов даже если их нету в глобальных группах

от Vadim Tabunshchik -
Количество ответов: 0
Изображение пользователя Developers

Сделайте два запроса:

  1. Найдите всех пользователей, входящих в глобальную группу, и название группы
  2. Найдите всех пользователей, не входящих ни в одну глобальную группу

Объедините эти 2 запроса, получите результат:

SELECT
    CONCAT( u.lastname, ' ', u.firstname ) 'ФИО',
    ch.name 'Группа'
FROM
    mdl_user u
    JOIN mdl_cohort_members chm ON u.id = chm.userid
    JOIN mdl_cohort ch ON ch.id = chm.cohortid
WHERE
    u.deleted = 0
    AND u.username NOT LIKE 'guest' UNION
SELECT
    CONCAT( u.lastname, ' ', u.firstname ) 'ФИО',
    NULL
FROM
    mdl_user u
WHERE
    u.id NOT IN ( SELECT chm.userid FROM mdl_cohort_members chm )
    AND u.deleted = 0
    AND u.username NOT LIKE 'guest'
ORDER BY
    ФИО

В запросе исключаем удаленных пользователей и Гостя