猿问

Gorm 处理 HasOne 关系

我对 GORM 和 MySQL 有疑问。我有这个结构:


type Users struct {

ID          string

Balance     Balances

Model

}


type Model struct {

CreatedAt time.Time

UpdatedAt time.Time

DeletedAt *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


海绵宝宝撒
浏览 169回答 1
1回答

绝地无双

使用.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}
随时随地看视频慕课网APP

相关分类

Go
我要回答