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

我有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

现在,结果始终为空。

我做错了什么?我应该如何正确实现我的目标?

(我认为我的顺序也是错误的,我需要任务的降序数字)


慕码人8056858
浏览 136回答 1
1回答

慕无忌1623718

当您使用某些 sql 时,需要明确枚举要分组的字段。我想你的表有更多的字段,而不仅仅是如果它是真的,你必须添加解释它,或者只是把你的选择更改为你想要显示的字段,例如尝试这样的事情。group byusersid, user_addrgroup byerr := 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).         Errorp.s. 对于降序,只需在 字段中添加运算符即可DESCOrder
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go