Я использовал два отдельных запроса SQL для извлечения важной пользовательской информации из Moodle (v3.5), которая мне нужна для офлайн-биллинга.
Первый запрос, приведенный ниже, дает большинство существенных деталей, однако, он не дает дату, когда пользователь записался на определенный курс.
Пользователь может зарегистрироваться на портале 1 января, он может зарегистрироваться в курсе 1 15 января и впоследствиизаписаться на курс 2 15 февраля.Мне нужно отследить фактическую дату зачисления на конкретный курс.
Во втором приведенном ниже SQL-запросе указана фактическая дата зачисления на курс в последнем столбце.Но он не дает идентификатор электронной почты и не предоставляет настраиваемые поля - State & City.
В настоящее время я выполняю оба запроса, переношу их в электронную таблицу и выполню Vlookup с использованием идентификатора пользователя в первом столбце.каждого отчета.Это довольно неточно, поскольку один и тот же идентификатор пользователя повторяется несколько раз, и Excel ищет первый раз.
Короче:
Мне просто нужно добавить дату зачисления на курс'от последнего столбца второго запроса до первого запроса ниже.
Я перепробовал все, что мог, в меру своих навыков SQL (которые в лучшем случае жалки).
Я искренне признателен за любую помощь в изменении запроса ниже.
Запрос 1
SELECT
user2.id AS userid,
user2.username AS username,
user2.firstname AS Firstname,
user2.lastname AS Lastname,
user2.email AS Email,
(SELECT UID.data FROM prefix_user_info_field UIF, prefix_user_info_data UID WHERE UID.fieldid = UIF.id AND UIF.shortname = 'usercity' AND UID.userid = user2.id) as 'usercity',
(SELECT UID.data FROM prefix_user_info_field UIF, prefix_user_info_data UID WHERE UID.fieldid = UIF.id AND UIF.shortname = 'userstate' AND UID.userid = user2.id) as 'state',
(SELECT UID.data FROM prefix_user_info_field UIF, prefix_user_info_data UID WHERE UID.fieldid = UIF.id AND UIF.shortname = 'mobilephone' AND UID.userid = user2.id) as 'mobilephone',
course.fullname AS Course
FROM prefix_course AS course
JOIN prefix_enrol AS en ON en.courseid = course.id
JOIN prefix_user_enrolments AS ue ON ue.enrolid = en.id
JOIN prefix_user AS user2 ON ue.userid = user2.id
Запрос 2
SELECT
u.id,
u.username,
u.lastname,
u.firstname,
c.fullname,
DATE_FORMAT(FROM_UNIXTIME(ue.timecreated), '%Y-%m-%d %H:%i') AS 'Timecreated' FROM prefix_user_enrolments ue LEFT JOIN prefix_enrol e ON (ue.enrolid = e.id) LEFT JOIN prefix_course c ON (e.courseid = c.id) LEFT JOIN prefix_user u ON (ue.userid = u.id)