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

Gorm 处理 HasOne 关系

Gorm 处理 HasOne 关系

Go
海绵宝宝撒 2022-05-23 18:09:48
我对 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

}


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号