我有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 by
users
id, user_addr
group 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. 对于降序,只需在 字段中添加运算符即可DESC
Order
- 1 回答
- 0 关注
- 132 浏览
添加回答
举报
0/150
提交
取消