SELECT *
FROM messages
WHERE message_id IN (SELECT MAX(message_id)
FROM messages
GROUP BY if(sender_id > receiver_id, CONCAT(sender_id, receiver_id), CONCAT(receiver_id, sender_id))
)
У меня есть простая система обмена сообщениями, где сообщения 1 t 1 (без групп). Я просто хочу получить последнее сообщение между двумя пользователями.MySQL получить последние сообщения от 2 человек
Вышеупомянутые «работы», но я думаю, что я должен использовать максимальную временную метку против message_id, чтобы получить последнюю.
Моя таблица:
message_id (unique, auto inc),
sender_id (Primary),
receiver_id (Primary),
time_date,
content
Это работает, но он возвращает последнее сообщение, отправленное каждому пользователю. Я хотел бы получить последнее сообщение обменивается между двумя пользователями. – ovg
Обновлено ан. Пожалуйста, попробуйте, если он работает так, как вы ожидаете. –