ユーザーが別のユーザーにメッセージを送信できるようにするユーザー向けのメッセージングシステムを作成しました。
このために、2つのテーブルを作成しました。
conversation(conversation_id,user_id1,user_id2)
messages(message_id,conversation_id,sender_id,receiver_id,message,created_time)
ユーザーが初めて話している場合、conversation_idはuser_id1(チャットを開始する人)とuser_id2(user_id1がメッセージを送信する人)で作成されます
メッセージテーブルには、メッセージに関連するすべての情報が含まれます。
今私が欲しいのは、ログインしたユーザーが他のユーザー間のすべての会話リストをcreated_timeで並べ替え、conversation_idでグループ化して表示できるメッセージ要約ページを作成することです。
テーブルデータは次のとおりです。
conversation_id | user_id1 | user_id2
1 100 103
2 101 103
3 103 102
message_id| conversation_id| sender_id| receiver_id| message | created_time
1 1 100 103 MSG A 2012-06-08 08:38:57
2 1 103 100 MSG B 2012-06-08 08:39:40
3 2 101 103 MSG C 2012-06-08 08:40:20
4 3 102 103 MSG D 2012-06-08 08:41:10
そして、これが私が探しているものの出力です:ログインしたユーザーがID:103であるとしましょう
conversation_id| conversation_with | last_message | created_time
3 102 MSG D 2012-06-08 08:41:10
2 101 MSG C 2012-06-08 08:40:20
1 100 MSG B 2012-06-08 08:39:40
したがって、この出力は、created_timeで並べ替え、conversation_idでグループ化し、conversation_withにユーザーID103が会話しているユーザーのIDを表示します。
誰かがMySQLクエリを提供できますか?この出力を取得する必要があります。