Привет, сейчас я работаю в чате и хочу отобразить список пользователей участников чата (как в WhatsApp или Telegram) с именем участника чата, картинкой, количеством непрочитанных сообщений и последними сообщениями на основе отметки времени.Я борюсь с SQL-запросом ( Postgres ).
Это таблица message :
+-------+---------+-------+-------------------------------+---------+---------------+
| me_id | me_from | me_to | me_timestamp | me_read | me_content |
+-------+---------+-------+-------------------------------+---------+---------------+
| 1 | 1 | 2 | 2019-01-04 02:50:53.931637+00 | true | hey |
| 2 | 1 | 2 | 2019-01-04 02:57:53.931637+00 | true | how are you? |
| 3 | 1 | 2 | 2019-01-04 03:10:53.931637+00 | true | you there? |
| 4 | 1 | 3 | 2019-01-05 01:57:53.931637+00 | true | good night |
| 5 | 2 | 1 | 2019-01-05 02:10:53.931637+00 | false | I am here |
| 6 | 3 | 2 | 2019-01-05 03:57:53.931637+00 | false | see you later |
| 7 | 3 | 1 | 2019-01-05 04:57:53.931637+00 | false | okay |
+-------+---------+-------+-------------------------------+---------+---------------+
таблица для member :
+------+------------+-------------+
| m_id | m_nickname | m_picture |
+------+------------+-------------+
| 1 | John | selfie.jpg |
| 2 | CocoGirly | selfie2.jpg |
| 3 | MileyStar | selfie3.jpg |
| 3 | JackX | selfie4.jpg |
+------+------------+-------------+
И я хочу, чтобы это выглядело так (содержание сообщения и имена, не связанные на картинке):
Вот что у меня есть:
SELECT m_id,
m_nickName,
m_picture
FROM member
WHERE m_id IN
( SELECT me_to AS chatPartner
FROM
( SELECT me_to
FROM message
WHERE me_from = 1
GROUP BY me_to
UNION SELECT me_from
FROM message
WHERE me_to = 1
GROUP BY me_from) A)
Заранее большое спасибо!