2016-01-25 2 views
0

Я пытаюсь сделать группу по заказу в mysql, но я не получаю результаты, которые мне нужны. Вот моя структура таблицы Имя таблицы - это фид id, date, user_id, item_id, item_type Это таблица для подачи активности на сайте. Я хочу, чтобы в главном фиде появился последний элемент, который каждый пользователь разместил, но ограничил только последнее сообщение не всеми своими сообщениями.Mysql упорядочивается и группируется по таблице фидов

Вот простой MySQL запрос, который я попытался

выберите * из группы подачи по user_id порядке по дате по алфавиту

я получаю только один пост от каждого пользователя, но это не их последнее сообщение, и это не в порядке от самого нового до самого старого.

+0

Можете ли вы предоставить данные? Невозможно увидеть, что происходит, не зная типов столбцов и т. Д. – michael

+0

Чтобы добавить группу, просто выберите случайную строку для каждого уникального значения в столбце user_id. Предложение order by применяется только ПОСЛЕ того, что просто заказывает значения, вытащенные в этой точке, за исключением вытащенных значений случайным для каждого пользователя, поэтому он не собирается делать то, что вы хотите. – michael

ответ

0

Предполагая, что последнее сообщение имеет максимальное значение FEED_ID, следующий запрос должен дать вам то, что вам нужно:

SELECT f.* 
FROM feed f 
JOIN (SELECT user_id, max(feed_id) as feed_id FROM feed group by user_id) g 
on f.feed_id = g.feed_id 
Смежные вопросы