How can a MySQL query be structured to select each user with whom one has chatted exactly once and display the latest message with that user?

To select each user with whom one has chatted exactly once and display the latest message with that user, you can use a subquery to count the number of messages exchanged with each user and then join this result with the messages table to retrieve the latest message. This can be achieved by grouping the messages by sender and receiver, filtering out users with more than one message exchange, and then selecting the latest message for each user.

SELECT m.sender, m.receiver, m.message
FROM messages m
JOIN (
    SELECT sender, receiver
    FROM messages
    GROUP BY sender, receiver
    HAVING COUNT(*) = 1
) AS sub
ON (m.sender = sub.sender AND m.receiver = sub.receiver) OR (m.sender = sub.receiver AND m.receiver = sub.sender)
ORDER BY m.timestamp DESC;