@Farrien
Tell me who

Что за ошибка с GROUP BY в запросе?

Этот запрос работает у меня. Но на сервере, настроенный давно уволившимся админом - нет!
SELECT albums.id, albums.name, photos.thumb_url
		FROM `custom_app_bigd_gallery_albums` albums
		LEFT JOIN `custom_app_bigd_gallery` photos ON albums.id=photos.album_id
		WHERE photos.thumb_url IS NOT NULL
		GROUP BY photos.album_id
		ORDER BY albums.id DESC
		LIMIT 0, 25


Выдает эту ошибку
Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'photos.thumb_url' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


Суть запроса - вернуть список альбомов, с прикрепленными к ним по одному фото.
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
LaRN
@LaRN
Senior Developer
Можно добавить агрегирующий функции и поправить немного группировку:
SELECT albums.id, albums.name, min(photos.thumb_url)
    FROM `custom_app_bigd_gallery_albums` albums
    LEFT JOIN `custom_app_bigd_gallery` photos ON albums.id=photos.album_id
    WHERE photos.thumb_url IS NOT NULL
    GROUP BY photos.album_id, albums.name
    ORDER BY albums.id DESC
    LIMIT 0, 25
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
Там же написано чтобы этот запрос работал нужно на сервере выключить мод я так понял ваш сервер работает в режиме strict, поменяйте настройки

[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы