Я использую базу данных MySQL для хранения сообщений чата, где моя таблица SQL выглядит следующим образом
id sent_by message read received_by created_at updated_at
786 6 Hi 0 1 2018-04-26 13:00:15 2018-04-26 13:00:15
774 211 Hello 1 6 2018-04-26 12:20:25 2018-04-26 12:59:59
772 1 hi 1 6 2018-04-26 12:19:28 2018-04-26 13:00:14
Эти данные пришли ко мне в результате запроса ниже:
SELECT *
FROM `enrich_chat_message`
WHERE id IN (SELECT MAX(id) AS id
FROM `enrich_chat_message`
WHERE received_by=6 OR sent_by=6
GROUP BY sent_by)
ORDER BY created_at DESC
Но я хочу иметь такие записи
id sent_by message read received_by chat_with created_at updated_at
786 6 Hi 0 1 1 2018-04-26 13:00:15 2018-04-26 13:00:15
774 211 Hello 1 6 211 2018-04-26 12:20:25 2018-04-26 12:59:59
Здесь в выше желаемого результата я добавил новый столбец chat_with
уникальный столбец, который показывает уникальное значение из sent_by
и received_by
. «6» - это мое собственное имя пользователя, с которого пользователь вошел в систему.
Итак, я хочу использовать это для отображения всех чатов в порядке чата DESC. И я не хочу, чтобы данные повторялись здесь. Как 1
не должно повторяться в chat_with
.
Ищу любые предложения по улучшению запроса.
Спасибо! (заранее)