GO gorm 数据库联查 Belongs TO
两张表分别是,user 和 company
user 构造体
- foreignKey 重写外键
- references 重写引用
type User struct {
Id int
Name string
CompanyID int
Company Company `gorm:"foreignKey:CompanyID;references:ID"`
}
func (User) TableName() string {
return "user"
}
company 构造体
type Company struct {
ID int
Name string
}
func (Company) TableName() string {
return "company"
}
查询代码
type GetUser struct {
beego.Controller
}
func (c *GetUser) Get() {
var user models.User
// models.DB.Preload("Company").Find(&user) //查询整个 user
// models.DB.Preload("Company").First(&user, 2) //查询 user.id === 2 的数据
models.DB.Where("name=?", "张小姐").Preload("Company").First(&user)
c.Data["json"] = map[string]interface{}{
"data": user,
}
c.ServeJSON()
}
结果
{
"data": {
"Id": 1,
"Name": "*先生",
"CompanyID": 1,
"Company": {
"ID": 1,
"Name": "*"
}
}
}