首页 文章

如何在金珠GORM创建左连接

提问于
浏览
1

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

这些是我的结构:

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

type Status struct {
    ID   uint   
    Name string
}

Prop拥有Status的外键

我想要执行的SQL查询是:

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

所以我会从与状态表连接的prop表中检索所有记录

我试过了:

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

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

1 回答

  • 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"). ..etc . 实际上,您可以链接大多数 Gorm 函数调用 .

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

    希望有所帮助!

相关问题