Как выбрать последние записи с уникальным ключом с условием IN в MySQL?

Добрый день.

Есть 2 таблицы: Диалог и Сообщения
Надо выбрать нужные мне диалоги, а после последние сообщения из них (как во Вконтакте).

У меня есть массив с ID диалогов, но я не могу выбрать последние сообщения с помощью условия IN, потому что если будет 500 диалогов, придется к каждому грузить последнее сообщение.

Конкретная проблема в том, что если использовать IN + LIMIT + ORDER BY DESC, и если сообщения в одном диалоге идут подряд, то загрузятся сообщения только одного диалога.

Есть ли конструкции вида "Обычный SELECT + SELECT DISTINCT"?
Или "SELECT `id`, UNIQUE('conversation')"?
Как мне буквально в паре запросов выбрать последние записи из базы с уникальным ключом с использованием условия IN или подобных?
  • Вопрос задан
  • 431 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Wol_fi
php, js, mysql, highload
madmages
@madmages
Человек прямоходящий
если у тебя в message хранится id диалога то тогда

SELECT * FROM message GROUP BY dialog_id ORDER BY date DESC LIMIT 500
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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