Golang GORM 查询:如何利用其他查询结果获取关联数据
在 Golang 的 GORM 中,可以使用Related 方法来利用从其他查询结果中获取的数据。Related 方法用于指定要加载的关联模型,并将其附加到原始查询结果上。
下面是一个示例代码,演示如何在 GORM 中使用从其他查询结果中获取的数据:
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
}
type Order struct {
ID uint
UserID uint
User User
}
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 创建表格
err = db.AutoMigrate(&User{}, &Order{})
if err != nil {
panic("failed to migrate tables")
}
// 创建用户
user := User{Name: "John Doe"}
db.Create(&user)
// 创建订单
order := Order{UserID: user.ID}
db.Create(&order)
// 查询订单,并加载关联的用户
var result Order
db.First(&result, order.ID)
db.Model(&result).Association("User").Find(&result.User)
fmt.Println(result)
fmt.Println(result.User)
}
在上面的示例中,我们首先定义了User 和 Order 两个模型,其中 Order 模型关联了 User 模型。然后我们创建了一个用户和一个订单,并将订单关联到用户上。
接下来,我们使用First 方法查询订单,并使用Association 方法加载关联的用户。最后,我们打印订单和用户的信息。
原文地址: https://www.cveoy.top/t/topic/qjZR 著作权归作者所有。请勿转载和采集!