Ответы пользователя по тегу MySQL
  • ORDER с GROUP BY в прикрепленной таблице?

    @a1go1ov
    Scala fan, Java developer
    Я не специалист в MySQL, но вообще по стандарту SQL в блоке select можно указывать только те поля, которые либо указаны в блоке group by (то есть по которым осуществляется группировка), либо передаются в групповую функцию, такую как sum, max и т.д.
    Судя по документации, MySQL позволяет не придерживаться данного правила, но тогда для полей не удовлетворяющих озвученным выше условиям выбирается произвольная строка из группы.
    Для того, чтобы отключить в MySql расширенное трактование GROUP BY, нужно включить режим ONLY_FULL_GROUP_BY

    Относительно вашего запроса, повторная выборка столбца p.post_date, после того как вы указали, что хотите получить записи с последней датой - max(p.post_date), явно не имеет смысла и ломает группировку. Уберите ее, ну и в целом лучше придерживаться стандарта, так ваши запросы будет легче портировать если вы будете мигрировать на другую СУБД, да и недопонимания будет меньше.
    Ответ написан
    Комментировать