Нужно решение для MySQL выбрать данные, где до
У меня есть разговор между двумя людьми, пользователем 222 и пользователем 5555, он отображается так:
Conversation-ID 1, Message-ID 5, User-ID 222: "Oh, and I'm happy about that!"
Conversation-ID 1, Message-ID 4, User-ID 222: "And bought me a new car."
Conversation-ID 1, Message-ID 3, User-ID 222: "I just won some money!"
Conversation-ID 1, Message-ID 2, User-ID 5555: "Fine, how are you?"
Conversation-ID 1, Message-ID 1, User-ID 222: "Hi there, how are you?"
Сейчас я ищу решение в PHP / MySQL для отображения только сообщений от User-ID 222 до сообщения от User-ID 5555.
Результат должен быть:
Conversation-ID 1, Message-ID 5, User-ID 222: "Oh, and I'm happy about that!"
Conversation-ID 1, Message-ID 4, User-ID 222: "And bought me a new car."
Conversation-ID 1, Message-ID 3, User-ID 222: "I just won some money!"
На самом деле у меня есть
"SELECT * FROM table_conversations WHERE conversation_id='1' and user_id !='5555' ORDER BY message_id DESC"
но, конечно, это будет отображать все сообщения от идентификатора пользователя 222. Мне нужны только последние неотвеченные сообщения от идентификатора пользователя 222.
Есть ли какая-либо команда или решение в php + mysql, чтобы получить этот результат, также работающий для всех других разговоров?
1 ответ
Решение
Предполагая, что идентификатор сообщения определяет порядок сообщений:
select *
from table_conversation c
where user_id = 222 and
message_id > (select max(message_id) from table_conversation c2 where user_d = 555);