0

私はこのSQL文を達成しました:

SELECT users.firstname, users.lastname, users.screenname, profile.profile_pic,
users.user_id, messages.msgid, messages.message, messages.action,
DATE_FORMAT(messages.date_sent, '%M %d, %Y %r') AS date_sent
FROM messages messages
JOIN users ON messages.sent_by = users.user_id
LEFT JOIN profile ON (users.user_id = profile.user_id)
WHERE messages.recepient_id = "12052821" and messages.action = false
ORDER BY msgid DESC

そして、正しい出力が出力されます(以下) ここに画像の説明を入力

問題は、メッセージを送信したユーザーのすべてのリストをどのように整理し、上位 1 件のメッセージを ORDER BY msgid DESC でそれぞれ表示するかです。(ユーザーは重複してはいけません)

これが私のテーブルです ここに画像の説明を入力

上記のクエリには、少し拡張が必要だと思います。よろしくお願いします

4

2 に答える 2

0

問題は解決しました - 次の行を追加するだけです: GROUP BY users.user_idbefore order by

于 2012-06-01T05:32:06.403 に答える
-1

試す

ORDER BY msgid DESC LIMIT 1
于 2012-06-01T05:23:34.500 に答える