@rinaz22

Как правильно группировать данные с БД?

Задача такая: Нужно получить доп. данные с 2 таблицы для записей, у которых совпадает id и offer_id. Таких записей может быть несколько и чтобы не выводить дубли, я хотел сгруппировать с помощью GROUP BY по столбцу offer_id.
Код:
SELECT COUNT(`offers_stat`.`id`), GROUP_CONCAT(`offers_stat`.`status`), `offers`.`name`, `offers`.`bet`
FROM `offers_stat`, `offers`
WHERE `offers_stat`.`user_id` = '$_SESSION[id]' AND `offers_stat`.`offer_id` = `offers`.`id`
GROUP BY `offers_stat`.`offer_id`

Все работало, но условия поменялись и теперь нужно группировать по другому столбцу - sub1. Как только offer_id меняю на sub1, то выходит ошибка:
Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'lk.offers.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

С GROUP BY раньше не работал. К сожалению учить тоже нет времени. Подскажите пожалуйста, где тут ошибка? Почему ругается как только я меняю offer_id?
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
If the ONLY_FULL_GROUP_BY SQL mode is enabled (which it is by default), MySQL rejects queries for which the select list, HAVING condition, or ORDER BY list refer to nonaggregated columns that are neither named in the GROUP BY clause nor are functionally dependent on them.
MySQL also permits a nonaggregate column not named in a GROUP BY clause when SQL ONLY_FULL_GROUP_BY mode is enabled, provided that this column is limited to a single value

https://dev.mysql.com/doc/refman/8.0/en/group-by-h...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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