次のような select ステートメントがあります。
    SELECT c.id AS courseid, u.id AS userid
    FROM
    mdl_user_enrolments ue
    join mdl_enrol e on e.id = ue.enrolid
    join mdl_user u on u.id = ue.userid
    join mdl_course c on c.id = e.courseid
現在のテーブルと直接関係のない別のデータが必要です。私は出力ループでこの関数を呼び出してきましたが、
function getLastCourseAccessByUser($courseid, $userid){
global $DB;
return
    $DB->get_record_sql('
    SELECT FROM_UNIXTIME(time, "%m/%d/%Y") as ftime
    FROM mdl_log
    WHERE course = '.$courseid.' AND userid = '.$userid.'
    ORDER BY time DESC
    limit 1
');
}
ただし、すべてのデータを一度に取得し、db をコールバックしないでください。
私はこれを試しています:
            SELECT c.id AS courseid, u.id as userid
            (
               SELECT FROM_UNIXTIME(time, "%m/%d/%Y") as ftime
               FROM mdl_log
               WHERE course = c.id AND userid = u.id 
            )  AS lastaccessdate
        FROM
         mdl_user_enrolments ue
         join mdl_enrol e on e.id = ue.enrolid
         join mdl_user u on u.id = ue.userid
         join mdl_course c on c.id = e.courseid
または、次のようにSQLから直接関数を呼び出すことはできますか:
        SELECT c.id AS courseid, u.id as userid,
             '.getLastCourseAccessByUser(c.id,u.id).' AS lastaccessdate
    FROM
        mdl_user_enrolments ue
        join mdl_enrol e on e.id = ue.enrolid
        join mdl_user u on u.id = ue.userid
        join mdl_course c on c.id = e.courseid
ありがとうございました。