как насчет того, если вы попытаетесь использовать представления для этого, но это немного странное решение, например:
CREATE VIEW comm_blogs_publish_desc AS SELECT `User`.`id` AS `userid`, *
FROM `comm_blogs` AS `Blog`
LEFT JOIN `comm_users` AS `User` ON (`Blog`.`user_id` = `User`.`id`)
WHERE `Blog`.`status` = 1
ORDER BY `Blog`.`published` DESC;
Тогда вы можете использовать его уже к исходному запросу:
SELECT *
FROM comm_blogs_publish_desc
GROUP BY `userid` LIMIT 5;
Это просто странно, потому что вам все еще нужно создать представление, но после группировки его по идентификатору пользователя вы будете уверены, что оно уже отсортировано по дате публикации, хотя представления уже похожи на виртуальные таблицы, но это будетидеально, если вы указываете, какие столбцы вам действительно нужны, потому что некоторые имена столбцов могут конфликтовать (те же имена столбцов из других таблиц), если вы просто используете '*' для отображения всех столбцов в таблице.
Я видел, что в новом обновлении, которое вы сделали для запроса, проблема возникает из-за того, что вы используете 2 столбца в операторе IN (он принимает только 1 столбец для подзапроса и возвращает ошибку, если вы используете 2 или более столбцов для него, что приводит к количеству элементовпроблема) обновите его следующим образом:
SELECT `User`.`id`, `User`.`username`, `Blog`.`id`, `Blog`.`headline`, `Blog`.`published`, `UserInfo`.`gender`, `UserInfo`.`id` FROM `comm_blogs` AS `Blog`
LEFT JOIN `comm_users` AS `User` ON (`Blog`.`user_id` = `User`.`id`)
LEFT JOIN `comm_user_infos` AS `UserInfo` ON (`Blog`.`user_id` = `UserInfo`.`id`)
WHERE `User`.`active` = '1' AND `Blog`.`status` = 1 AND `Blog`.`id` IN (
SELECT `LastBlog`.`id`
FROM comm_blogs AS LastBlog WHERE `LastBlog`.`status` = 1
GROUP BY `LastBlog`.`user_id` ORDER BY last DESC
)
ORDER BY `Blog`.`published` DESC LIMIT 0, 5;
и затем передайте лимит в основной запрос вместоПодзапрос, чтобы избежать последней проблемы: Синтаксическая ошибка или нарушение прав доступа: 1235 Эта версия MySQL еще не поддерживает подзапрос LIMIT & IN / ALL / ANY / SOME '
;)