PeeweeにてネストしたSQL文が実行できない
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 | |
+-------+------------------+------+-----+---------------------+-------------------------------+