如何在金珠GORM创建左连接

时间:2018-04-16 04:30:36

标签: mysql go go-gorm

我无法使用jinzhu GORM(MySQL数据库)中的左连接创建简单查询

这些是我的结构:

type Prop struct {
    ID          uint   
    Status      Status 
    StatusID    uint
    Name        string 
}

type Status struct {
    ID   uint   
    Name string
}

Prop拥有状态

的外键

我想要执行的SQL查询是:

SELECT * from prop LEFT JOIN status ON prop.status_id = status.id

所以我将从与状态表

连接的prop表中检索所有记录

我试过了:

db.Find(&prop).Related(&status) 

但没有成功。有人有什么建议吗?提前致谢

1 个答案:

答案 0 :(得分:2)

嘿@arthur_mastropietro, 我认为预加载Prop相关的Status是关键。试试以下内容:

prop := Prop{}
if err := db.Model(&prop).Preload("Status").Find(&prop).Error; err != nil {
  fmt.Println(err)
}
fmt.Printf("%+v\n", prop)

注意

你可以链接其他结构的预加载,即 Preload("Status").Preload("Something"). ..等。实际上,您可以链接大多数Gorm函数调用。

此外,如果Status还有另一个结构作为其中一个字段,您可以通过调用同时加载它们 Preload("Status.Something")

希望有所帮助!