各グループの最後の行(Group By user_id)が必要です。各グループの最後の行を取得し、配列全体をID(pk)DESCで順序付けし、他のテーブルと結合します。
表:user_messages
id(PK) | user_id(FK) | read_admin_status | created_at
1 5 0 date
2 5 0 date
3 5 0 date
4 5 1 date
5 6 1 date
6 6 1 date
7 7 0 date
8 7 0 date
表:ユーザー
id | username
は今からユーザー名を欲しい、次のような表の
構造でありますユーザーのテーブルと私はuser_messagesから他の詳細が欲しい。
ここで、user_idのデータをにして、最後の行だけを必要とします。 同様に他のグループのために私は各グループの最後の行をしたいとユーザーテーブル私はのユーザー名テーブルを結合してほしい。
可能であれば、お手伝いしてください。ありがとうございました。このクエリは、IDによってご注文時に最後のIDを取得することと同じである、メッセージの各ユーザーのグループで最大のメッセージIDを選択し、使用する
SELECT user_messages.id, users.username
FROM (
SELECT MAX(id) AS max_id
FROM user_messages
GROUP BY user_id
) AS ids
INNER JOIN user_messages ON ids.max_id = user_messages.id
INNER JOIN users ON user_messages.user_id = users.id
:
あなたが望む結果は、 '4 5 1 date someusername'、' 6 6 1 date someotherusername'、 '8 7 0 date anotherusername'です。 –