Задать вопрос
@xonar
А смысл?

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

Здравствуйте.

Объединяю 2 таблицы с помощью JOIN и условием мне нужно сгруппировать с помощью GROUP BY по полю game_id (номеру игры) поле price, но никак не выходит.

Вот кусок запроса, где я остановился на данный момент и скрин, что получаю.

SELECT * FROM `roulette_bets` LEFT OUTER JOIN `roulette_games` ON `roulette_bets`.`game_id` = `roulette_games`.`id` WHERE `roulette_bets`.`user_id`=36454  GROUP BY roulette_bets.id  
ORDER BY `roulette_bets`.`game_id`  DESC


5c6b8a219fe22132175988.png

Если в запросе пишу GROUP BY roulette_bets.game_id то выходит ошибка такая

"#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'gosens.roulette_bets.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"

Попробовал сделать вот так.

SELECT roulette_bets.game_id, roulette_bets.user_id, SUM(roulette_bets.price) as pricebets  FROM `roulette_bets` JOIN `roulette_games` ON `roulette_bets`.`game_id` = `roulette_games`.`id` WHERE `roulette_bets`.`user_id`=36454  GROUP BY roulette_bets.game_id
ORDER BY `roulette_bets`.`game_id` DESC


То всё нормально, он группирует по game_id и успешно складывает поле price, но! Он выводит всего 3 поля, а мне нужны все поля из двух таблиц, а выводит как на скрине.

5c6b8bcf80b62854101893.png

Помогите, запутался.

Структура таблицы roulette_bets скрин ниже:

5c6b91b28d9a3644193628.png

Структура таблицы roulette_games скрин ниже:

5c6b91d093d5a797195277.png

roulette_bets.game_id = roulette_games.id

Мне нужно получить например по игре 64677 (первый скрин в теме), поля game_id, user_id, price, fund, commission, random_number, created_at. Цену PRICE нужно сложить в одну сумму по game_id

И получим, игра 64677 = , user_id=36454, price=5.2 и т.д.
  • Вопрос задан
  • 321 просмотр
Подписаться 1 Средний 11 комментариев
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А вы пробовали прочитать и понять сообщение об ошибке? Там ведь английским по белому написано, в чём проблема с группировкой.
https://dev.mysql.com/doc/refman/5.7/en/group-by-h...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы