Elfet, прошу прощения, но этот вопрос уже на столько уже оскомину набил, как и вопрос "как разместить иконку где часики" в формах по делфе.
Классическое решение:
| Код | select t.* from messages t inner join ( SELECT message_sender_id, message_user_id,max(message_date ) max_message_date FROM `messages` GROUP BY message_sender_id, message_user_id ) s on t.message_sender_id = s.message_sender_id and t.message_user_id = s.message_user_id and t.message_date = s.max_message_date
|
Однако такой запрос даст более одного результата, если окажется более одного поста на одну дату, обычно так не нужно, нужен обычно один пост, обычно по наибольшему pk. Чтобы добиться такого, поищите по форму по клюевому слову "бабушкин метод". Для мйскл, в частности, можно попробовать еще такой трюк(при условии что message_id- PK):
| Код | select * form messages where message_id in (select (select message_id from messages s where s.message_sender_id = t.message_sender_id and s.message_user_id = t.message_user_id order by message_date desc limit 1 ) max_date_message_id from ( SELECT message_sender_id, message_user_id FROM `messages` GROUP BY message_sender_id, message_user_id ) t )
|
|