Извиняюсь, что не уточнил очень много деталей. Вещи можно получать из сундуков и чем выше ценность вещи, тем сложнее её получить и тем самым она дороже. Каждая вещь имеет свою ценность в виде игровой валюты. Обмен происходит между самой игрой и пользователями. Если пользователь хочет, то может испытать удачу и попробовать обменять 10 вещей одной ценности на 1 вещь ценностью выше. Эта вещь ценностью выше может стоить дороже тех 10 вещей, которые ушли на обмен или же наоборот дешевле. Необходимо, чтобы игра оставалась всегда в плюсе.
И выдавать пользователю вещь, основываясь на процентах? Но может же так быть, что рандомом пользователи, по итогу, получат предметы большей стоимостью, чем мы забрали комиссию.
Сергей Паньков, спасибо большое вам за помощь и извините, что я неправильно составил вопрос в данной ситуации, поэтому вы правильно подметили: "вы, похоже, сами не понимаете чего хотите".
По итогу у меня получился такой запрос:
SELECT users.id, users.name, messages.content, messages.date
FROM dialogues, messages, users
WHERE users.id = (CASE WHEN first_user=$1 THEN second_user WHEN second_user=$1 THEN first_user ELSE 0 END) AND messages.id = dialogues.last_message