为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 gorm order pagenate 得到空的结果?

为什么 gorm order pagenate 得到空的结果?

Go
慕码人8056858 2022-08-09 20:23:55
我有2个表,用户和任务,我想按订单获取用户与任务行(每个用户拥有的任务数),然后按数量顺序返回用户的结果。这是我得到的:err := DB.Table("users").         Select("users.*, count(tasks.*) as tasks_quantity").         Joins("JOIN tasks ON tasks.user_addr = users.user_addr").         Group("users.user_addr, users.id").         Order("tasks_quantity").Offset(perPage * pageNum).Limit(perPage).Find(&allUsers).         Error现在,结果始终为空。我做错了什么?我应该如何正确实现我的目标?(我认为我的顺序也是错误的,我需要任务的降序数字)
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

当您使用某些 sql 时,需要明确枚举要分组的字段。我想你的表有更多的字段,而不仅仅是如果它是真的,你必须添加解释它,或者只是把你的选择更改为你想要显示的字段,例如尝试这样的事情。group byusersid, user_addrgroup by

err := DB.Table("users").
        Select("users.user_addr, users.id, count(tasks.*) as tasks_quantity").
        Joins("JOIN tasks ON tasks.user_addr = users.user_addr").
        Group("users.user_addr, users.id").
        Order("tasks_quantity DESC").Offset(perPage * pageNum).Limit(perPage).Find(&allUsers).
        Error

p.s. 对于降序,只需在 字段中添加运算符即可DESCOrder


查看完整回答
反对 回复 2022-08-09
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信