@nikitafrolov132

Как правильно составить SQL запрос?

У меня есть 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).
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы