我对 GORM 和 MySQL 有疑问。我有这个结构:type Users struct {ID stringBalance BalancesModel}type Model struct {CreatedAt time.TimeUpdatedAt time.TimeDeletedAt *time.Time}type Balances struct {UID string `gorm:"foreignkey:ID;unique_index"`USD int}我想选择余额中 USD 字段大于 0 的用户。我该怎么做?无论如何,db.Find(&users)获取所有用户,但不是他们的余额。实际上,执行的查询是:SELECT * FROM users WHERE users.deleted_at IS NULL
1 回答

绝地无双
TA贡献1946条经验 获得超4个赞
使用.Joins()加入Users,Balances然后使用条件使用.Where()
user := Users{}
db.Joins("JOIN balances ON balances.uid = users.id").Where("balances.usd > 0").Find(&user)
更新: 尝试更正您与预加载平衡的关系
type Users struct {
ID string
Balance Balances `gorm:"foreignkey:UID;association_foreignkey:ID"`
Model
}
type Balances struct {
UID string `gorm:"unique_index"`
USD int
}
- 1 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消