golang gorm 三个表相交查询 Related如何使用?
关联查询,三个表:
type Record struct {
Id int `json:"id"`
RecordUsers []*RecordUser `json:"record_users" gorm:"foreignKey:RecordId"`
}
type RecordUser struct {
Id int `json:"id"`
UserId int `json:"user_id"`
RecordId int `json:"record_id"`
Record Record `json:"record" gorm:"foreignKey:RecordId"`
}
type User struct {
Id int `json:"id"`
UserName string `json:"user_name"`
}
Record 一对多 RecordUser
RecordUser 一对一 User
想通过查询一条记录的时候同时交表查询到 User.UserName.
var model Record
db.Model(&Record{}).Preload("RecordUser").Find(&model)
上面这个只能查询到之后,去查 record_user,但不能再通过 record_user.user_id 的值去查 user表的数据,以此来获得 user_name 字段值。
select * from records;
select * from record_users where record_id in (1,2,3 ...)
如何写法可以再加入:
select * from users where id in (11,12,13,14) ...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
直接拼sql吧