У меня есть таблица users
и таблица private_messages
, я хочу получить список пользователей, которым текущий пользователь отправил или получил сообщение от другого пользователя, с последним содержимым сообщения.
таблица пользователей
id | username
таблица private_messages
author_id | recipient_id | content | creation_date
Это самый близкий мне способ получить пользователей
SELECT u.id, u.username FROM users u
WHERE u.id IN
(SELECT p.author_id as id
FROM private_messages p
WHERE p.recipient_id = '6d480813-c854-40fc-a3cf-cea0944854ab'
);
но, как вы можете видеть, он считается только в том случае, если пользователь не является автором сообщения, а также я не знаю, как включить содержимое последнего сообщения.
Будучи новичком в SQL Я также собираюсь изменить модель таблицы.
данные таблицы пользователей
╔════════════════════════════════════════╦════════════════╗
║ "id" ║ "username" ║
╠════════════════════════════════════════╬════════════════╣
║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "KayleeSchumm" ║
║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "JordonWaters" ║
║ "6d480813-c854-40fc-a3cf-cea0944854ab" ║ "AsafAviv" ║
╚════════════════════════════════════════╩════════════════╝
данные private_messages
╔════════════════════════════════════════╦════════════════════════════════════════╦═════════════════╦══════════════════════════════╗
║ "author_id" ║ "recipient_id" ║ "content" ║ "creation_date" ║
╠════════════════════════════════════════╬════════════════════════════════════════╬═════════════════╬══════════════════════════════╣
║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "6d480813-c854-40fc-a3cf-cea0944854ab" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "6d480813-c854-40fc-a3cf-cea0944854ab" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
║ "6d480813-c854-40fc-a3cf-cea0944854ab" ║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
║ "6d480813-c854-40fc-a3cf-cea0944854ab" ║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "hello world 0" ║ "2020-04-14 14:01:40.121+03" ║
╚════════════════════════════════════════╩════════════════════════════════════════╩═════════════════╩══════════════════════════════╝
ожидаемый результат
╔════════════════════════════════════════╦════════════════╦═════════════════╗
║ "id" ║ "username" ║ "content" ║
╠════════════════════════════════════════╬════════════════╬═════════════════╣
║ "2f8afc87-13d3-4654-8333-465b094c9ccf" ║ "KayleeSchumm" ║ "hello world 0" ║
║ "e5e37e98-3468-47e1-9c7e-1311988d6d79" ║ "JordonWaters" ║ "hello world 0" ║
╚════════════════════════════════════════╩════════════════╩═════════════════╝