простой SQL-запрос, дающий неправильное использование групповой функции - PullRequest
2 голосов
/ 12 марта 2012

Может кто-нибудь сказать мне, почему я получаю недопустимое использование групповой функции и как ее остановить?

SELECT Name, Message
FROM flux_chat_messages
WHERE id >= ( MAX( id ) -5 )
ORDER BY id ASC

1 Ответ

9 голосов
/ 12 марта 2012

Вы не можете использовать MAX() в WHERE. Оберните это в подзапрос, например:

SELECT Name, Message
FROM flux_chat_messages
WHERE id >= (SELECT MAX( id ) - 5 FROM flux_chat_messages)
ORDER BY id ASC

Также, вероятно, вы могли бы иметь

SELECT Name, Message
FROM flux_chat_messages
ORDER BY id DESC
LIMIT 5

и сторнируйте результаты в вашей программе (или используйте для этого другой подзапрос)

...