Нужно решение для 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);
Другие вопросы по тегам