Я столкнулся с той же проблемой (к моему удивлению, потому что мой поиск, кажется, показывает, что Oracle и MS поддерживают ее).
Я обхожу это ограничение (по крайней мере, на данный момент, пока он не окажется непригодным для использования), создав два дополнительных представления для моего окончательного вида.
Пример:
CREATE VIEW Foo1 AS
SELECT * FROM t ORDER BY ID, InsertDate DESC
CREATE VIEW Foo2 AS
SELECT * FROM Foo1 GROUP BY ID
CREATE VIEW Foo AS
SELECT * FROM Foo2 ORDER BY ID
В приведенном выше примере в основном есть таблица 't', которая является временной таблицей, содержащей все ревизии. Мой 'Foo' (представление) в основном является простым представлением только моих самых последних версий каждой записи. Кажется, сейчас все в порядке!
Обновление:
Я не знаю, является ли это еще одной ошибкой в MySQL 5.1, но приведенный выше пример на самом деле не работает! «Foo1» работает, как и ожидалось, но «Foo2», похоже, игнорирует порядок перед группировкой, поэтому мой конечный результат не соответствует ожиданиям. Я даже получаю тот же результат, если я заменю «DESC» на «ASC» (удивительно).
Также, если вы прочитали 17.5.1. Просмотрите синтаксис раздел, он четко гласит:
"Представление может быть создано из многих видов операторов SELECT. Оно может ссылаться на базовые таблицы или другие представления. Оно может использовать соединения, UNION и подзапросы."
Я собираюсь обновить базу данных до 5.6 и попробовать снова!