У меня есть 3 таблицы:
messages (в ней хранится информация о том, кто отправил сообщение, текст сообщения и дата),
dialogues (в ней хранится информация о двух пользователях, которые находятся в диалоге и ID последнего сообщения в этом диалоге),
users (в ней хранится имя пользователя и остальные данные).
Мне необходимо получить такой результат одним запросом: в таблице
dialogues я получаю ID получателя сообщения (записываю его в first_user) и получаю ID последнего сообщения в этом диалоге, после этого мне нужно получить имя получателя сообщения по ID из таблицы
users, после этого мне нужно получить текст сообщения и дату сообщения по ID последнего сообщения из таблицы
messages.
Тут я получаю ID последнего сообщения в нужном мне диалоге и ID получателя сообщения, которое записывается в first_user
SELECT last_message,
CASE WHEN first_user=1 THEN second_user
WHEN second_user=1 THEN first_user
ELSE first_user
END
FROM dialogues;
По итогу у меня должна получится такая таблица/ответ:
username (имя пользователя из таблицы users), content (текст сообщения из таблицы messages), date (дата сообщения из таблицы messages).