Golang中使用GORM查询连表可以通过使用Preload或Joins方法实现。

Preload方法可以在查询主表的同时预加载关联表数据,例如:

// 定义模型
type User struct {
    ID       uint
    Name     string
    Articles []Article // 定义一个关联模型
}

type Article struct {
    ID      uint
    Title   string
    Content string
    UserID  uint // 与User模型关联
}

// 查询用户及其所有文章
var user User
db.Preload("Articles").First(&user, 1)

上面的代码中,Preload方法会自动执行两个查询语句,第一个查询会查询用户信息,第二个查询会查询该用户的所有文章信息,最终返回一个包含用户和文章数据的结构体。

Joins方法则可以执行关联查询,例如:

// 查询用户及其所有文章
var users []User
db.Joins("JOIN articles ON articles.user_id = users.id").Find(&users)

上面的代码中,Joins方法会执行一条SQL语句来查询用户和文章数据,并将结果映射到一个包含用户和文章数据的结构体中。

需要注意的是,使用Joins方法时需要手动指定关联条件,而使用Preload方法则会自动根据模型定义中的关联关系来预加载数据。

golang gorm 查询连表

原文地址: https://www.cveoy.top/t/topic/uU5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录