Peewee генерирует верный запрос, но обращаясь к БД ничего не возвращает, хотя если вставить этот запрос в MySQL WB все работает
Запрос, который я пытаюсь сделать в python:
data = PlayerGroupTime \
.select(PlayerGroupTime.player_id, fn.SUM(PlayerGroupTime.time)) \
.group_by(PlayerGroupTime.player_id) \
.order_by(fn.SUM(PlayerGroupTime.time).desc()) \
.limit(10)
Далее, само собой peewee генерирует запрос, который выглядит так:
SELECT
`t1`.`player_id`, SUM(`t1`.`time`)
FROM
`player_group_time` AS `t1`
WHERE
(`t1`.`time` != 0)
GROUP BY `t1`.`player_id`
ORDER BY SUM(`t1`.`time`) DESC LIMIT 10
Но вместо того, чтобы вывести нужную информацию, выводится None, при этом в MySQL Workbench, подставляя генерируемый запрос, выводится все что нужно:
Ответы (1 шт):
Автор решения: Rise
→ Ссылка
После дебага кода, я увидел, что у все нужные значения у меня возвращается. Переменная row, если прокрутить через цикл for row in data, содержит нужные значения, а хапрос нужно немного переписать, чтобы нормально обратиться к значениям суммы:
data = PlayerGroupTime \
.select(PlayerGroupTime.player_id, fn.SUM(PlayerGroupTime.time).alias('sum_time')) \
.group_by(PlayerGroupTime.player_id) \
.order_by(fn.SUM(PlayerGroupTime.time).desc()) \
.limit(10)
for row in data:
print(row.sum_time)
print(row.sum_time) - выведит нам нужные значения суммы времени.
