如何进行多对多查找查询
How to do many-to-many Find query
我有两个具有多对多关系的结构,如下所示:
type User struct {
gorm.Model
Languages []Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
}
我想查找指定语言的用户。像这样:
var users []User
var lang = Language <-- this is the specified language
db.Model(&user).Association("Languages").Where("id = ? ", lang.ID).Find(&users)
但是这种格式是不允许的。
我自己找到了解决方案。要查找指定语言的用户,必须像这样使用 Back-Reference:
type User struct {
gorm.Model
Languages []*Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
Users []*User `gorm:"many2many:user_languages;"`
}
查询将采用这种形式:
var users []User
var lang = Language <-- this is the specified language
db.Model(&lang).Association("Users").Find(&users)
我有两个具有多对多关系的结构,如下所示:
type User struct {
gorm.Model
Languages []Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
}
我想查找指定语言的用户。像这样:
var users []User
var lang = Language <-- this is the specified language
db.Model(&user).Association("Languages").Where("id = ? ", lang.ID).Find(&users)
但是这种格式是不允许的。
我自己找到了解决方案。要查找指定语言的用户,必须像这样使用 Back-Reference:
type User struct {
gorm.Model
Languages []*Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
Users []*User `gorm:"many2many:user_languages;"`
}
查询将采用这种形式:
var users []User
var lang = Language <-- this is the specified language
db.Model(&lang).Association("Users").Find(&users)