ユーザーとログのテーブルが2つあります。ユーザーテーブルをログと結合して、最新のログエントリを取得したいと思います。グループ内の行でグループを使用することはソートされていないことに注意しました。したがって、最新のログ行を取得できません。
ユーザー:
ID | Name
--------------------
1 | John
2 | Mike
ログ:
L_ID | ACTION | DATE | USERID
----------------------------------
1 | OPEN | '1 DEC' | 1
2 | CLOSE | '3 DEC' | 1
3 | WRITE | '2 DEC' | 1
4 | OPEN | '5 DEC' | 2
5 | CLOSE | '3 DEC' | 2
この表を使用して、私が望む結果は次のとおりです。
2 Mike 4 OPEN '5 DEC'
1 Jhon 2 CLOSE '3 DEC'
グループ内の行が並べ替えられていないため、次のクエリが機能していないことがわかります。
Select * from user join log on ID=USERID group by ID order by DATE DESC,L_ID
また、正しい日付のみが返され、アクションは返されないため、以下は機能しません。
Select ID,Name,Action,Max(Date) from user join log on ID=USERID group by ID order by DATE DESC, L_ID
正しい結果を返すクエリを作成する方法を提案するアイデアはありますか?