Как написать такой SQL запрос?

Сообщения пользователей индексируются по полю chatKey. На вход поступает несколько chatKey. Мне нужно получить последнее сообщение ( одно ) для каждого поступившего chatKey.
Пример:

[1, 2, 3] -> Server
Server -> for i in chatKeys {
BD (SELECT something FROM messages WHERE chatKey = chatKey[i] ORDER BY chatKey DESC LIMIT 1;)
}

Но так надо сделать не циклом а одним запросом для каждого.
Результат моего запроса ( SELECT "id", "chatKey", "author", "date", "data", "files" FROM "messages" AS "MessageTable" WHERE "MessageTable"."chatKey" IN (перечисляю все id) ORDER BY "MessageTable"."chatKey" DESC LIMIT 1; ) - вывод всего одного сообщения, хотя на вход поступает запрос из более 100 chatKeys.
помогите написать запрос ( можете использовать произвольные названия полей и таблицы).
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы