MariaDBにて、ユーザー情報が格納されたusersとアクセスログが格納されたaccsess_logテーブルがあり、アクセスログに格納されている最新の時間(time)に紐づくユーザー情報をidm毎に取得したいです。

DBにて以下のSQLを叩くと目的の結果が取得できましたが、PythonのORMであるPeewee上での書き方がわかりません。

select users.name,users.student_id,users.type,access_log.time as time,access_log.state from users join access_log on users.idm=access_log.idm where time = (select MAX(time) from access_log where users.idm=access_log.idm);

Peewee上での書き方を教えていただけないでしょうか。

なお、DBの構造は以下です。

$ show columns users;
+------------+------------------+------+-----+---------------------+-------------------------------+
| Field      | Type             | Null | Key | Default             | Extra                         |
+------------+------------------+------+-----+---------------------+-------------------------------+
| id         | int(11) unsigned | NO   | PRI | NULL                | auto_increment                |
| name       | varchar(20)      | YES  |     | NULL                |                               |
| student_id | varchar(11)      | YES  |     | NULL                |                               |
| idm        | varchar(16)      | YES  |     | NULL                |                               |
| type       | varchar(20)      | YES  |     | NULL                |                               |
| created_at | timestamp        | NO   |     | current_timestamp() | on update current_timestamp() |
| updated_at | timestamp        | NO   |     | 0000-00-00 00:00:00 |                               |
+------------+------------------+------+-----+---------------------+-------------------------------+

$ show columns access_log;
+-------+------------------+------+-----+---------------------+-------------------------------+
| Field | Type             | Null | Key | Default             | Extra                         |
+-------+------------------+------+-----+---------------------+-------------------------------+
| id    | int(11) unsigned | NO   | PRI | NULL                | auto_increment                |
| idm   | varchar(20)      | NO   |     |                     |                               |
| time  | timestamp        | NO   |     | current_timestamp() | on update current_timestamp() |
| state | int(1)           | NO   |     | NULL                |                               |
+-------+------------------+------+-----+---------------------+-------------------------------+