私はmysqlリクエストで特別な動作をしようとしています。ここで参加から最初の行だけを取得する
は私のテーブルです:
users
id, email
infos_users
id_user, firstName, lastName, avatar
chatroom
id
chatroomUsers
id_chatroom, id_user
chatMessage
id, id_chatroom, message, id_sender
私がやりたい事は、ユーザがしているすべてのチャットルームを取得するには、ユーザーIDに基づいて、そのユーザーとのすべての部屋を取得することでこれを行うために、私は。 「この要求を使用してメートル:?
は私がに焦点を当てていたユーザーのIDです
SELECT chatroomUsers.id_chatroom,
users.id,
infos_user.avatar,
infos_user.firstName,
infos_user.lastName
FROM chatroomUsers
INNER JOIN users ON chatroomUsers.id_user = users.id
INNER JOIN infos_user ON infos_user.id_user = users.id
WHERE id_chatroom IN
(
SELECT id_chatroom
FROM chatroomUsers
WHERE id_user = ?
)
。もちろん、私はすべてをきれいにし、key = id_chatroomで素敵な配列を持ち、ユーザーの配列を評価するためにいくつかの後処理をしています。
次は何ですか?まあ、すべての行、チャットルームの最後のメッセージ(対応するid_chatroomと最高のid_message値を持つもの)が必要です。いくつかの後処理を行うために、もう一度
id_chatroom id avatar firstName lastName lastMessage id_message id_sender
0 0 avatar1 blah1 blah2 blahblahblah 0 1
0 1 avatar2 blah3 blah4 blahblahblah 0 1
1 2 avatar3 blah5 blah6 blahblahblahblah 1 3
1 1 avatar1 blah1 blah2 blahblahblahblah 1 3
1 3 avatar4 blah7 blah8 blahblahblahblah 1 3
:
id_chatroom id avatar firstName lastName
0 0 avatar1 blah1 blah2
0 1 avatar2 blah3 blah4
1 2 avatar3 blah5 blah6
1 1 avatar1 blah1 blah2
1 3 avatar4 blah7 blah8
、私はこのような何かをしたい:現在の要求は私にこれを返します。しかし、私がリクエストを作成しようとするたびに、それはすべてを駄目にします。
誰かが私を助けることができますか?
編集:チャットルームのメッセージは録音できませんでした。その場合は、メッセージフィールドにnull
と入力します。
あなたは何をあなたに説明することができますクウェリーが返すべきことをあなたが尋ねたことを理解できなかったのですか? – Cherif
@Charifそれは不明ですか?すべてが投稿にあります! – Devz
私はこれを理解していませんでした 最終的にsender_id – Cherif