私は最終的にこの(下の最初の)クエリを機能させることができました。これにより、action_idの最大値を持つaction_list_tableの行が得られます(したがって、入力したユーザーごとにこのテーブルの最後の「アクション」が得られます)
ここで、これを MAIN_TABLE と JOIN する必要があるので、そこからも情報を引き出すことができます (名前など)
SELECT * FROM `action_list_table` a
LEFT OUTER JOIN `action_list_table` b
ON (a.`record_id` = b.`record_id` AND a.`action_id` < b.`action_id`)
WHERE a.`record_id` = '".$ID."' AND b.`record_id` IS NULL"
私はこれにうんざりしましたが、うまくいきませんでした.3つのテーブルをJOINする方法についてはかなりずれていると確信しています(または、この場合、1つのテーブルをそれ自体にJOINしてから、別のテーブルにJOINします...)
"SELECT * FROM `action_list_table` a
LEFT OUTER JOIN `MAIN_TABLE`
ON a.`record_id` = `MAIN_TABLE.ID`
LEFT OUTER JOIN `action_list_table` b
ON (a.`record_id` = b.`record_id` AND a.`action_id` < b.`action_id`)
WHERE b.`record_id` IS NULL");
繰り返しますが、私はしようとしています:各ユーザーのアクションテーブルで行を見つけます(action_idが最も高いユーザー(自動インクリメントであるため、最後に作成されたユーザー))次に、MAIN_TABLEからいくつかの列を取得しますここで、action_list_table の ID (record_id) = MAIN_TABLE の ID