SELECT MAX(message_id) FROM messages GROUP BY GREATEST(to_id, from_id), LEAST(to_id, from_id);
Si desea los mensajes en sí, puede colocarlos en una subselección o convertirlos en una vista y unirlos con los mensajes.
SELECT MAX(message_id) FROM messages GROUP BY GREATEST(to_id, from_id), LEAST(to_id, from_id);
Si desea los mensajes en sí, puede colocarlos en una subselección o convertirlos en una vista y unirlos con los mensajes.