Сообщения пользователей индексируются по полю 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.
помогите написать запрос ( можете использовать произвольные названия полей и таблицы).