小编Md.*_*san的帖子

Django获取所有值Group By特定的一个字段

我想执行一个简单的查询,如:

    select *,count('id') from menu_permission group by menu_id
Run Code Online (Sandbox Code Playgroud)

在django格式中我尝试过:

    MenuPermission.objects.all().values('menu_id').annotate(Count('id))
Run Code Online (Sandbox Code Playgroud)

它只选择menu_id.查询执行:

    SELECT `menu_permission`.`menu_id`, COUNT(`menu_permission`.`id`) AS `id__count` FROM `menu_permission` GROUP BY `menu_permission`.`menu_id`
Run Code Online (Sandbox Code Playgroud)

但我也需要其他领域.如果我尝试:

   MenuPermission.objects.all().values('id','menu_id').annotate(Count('id))
Run Code Online (Sandbox Code Playgroud)

它按条件添加'id'.

  GROUP BY `menu_permission`.`id`
Run Code Online (Sandbox Code Playgroud)

结果我没有得到预期的结果.我如何通过组只获得一列所有对象?

django django-models

7
推荐指数
1
解决办法
1543
查看次数

标签 统计

django ×1

django-models ×1