MariaDBにて、ユーザー情報が格納されたusersとアクセスログが格納されたaccsess_logテーブルがあり、アクセスログに格納されている最新の時間(time)に紐づくユーザー情報をidm毎に取得したいです。
DBにて以下のSQLを叩くと目的の結果が取得できましたが、PythonのORMであるPeewee上での書き方がわかりません。
sql:
1select 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 from 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 from 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 | | +-------+------------------+------+-----+---------------------+-------------------------------+
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/18 06:02