Сделайте 2 запроса.
Первый выбирает сообщение, включая ID пользователей, с ним связанных.
Второй выбирает обоих пользователей по ID.
В случае использования JOIN изменение в любой таблице влечет за собой сброс кеша запроса в базе.
В случае двух запросов изменения например в таблице messages не будут сбрасывать кеш запроса по таблице пользователей, и наоборот.