- 定义模型关联关系
` package main
import ( "gorm.io/gorm" "gorm.io/driver/mysql" )
// A表 - 主表(一个A对应多个B)
type ModelA struct {
ID uint gorm:"primaryKey"
Name string
// 定义关联关系:ModelB.Id
BList []ModelB gorm:"foreignKey:Id"
}
// B表 - 从表
type ModelB struct {
Id uint gorm:"primaryKey"
Name string
}
`
-
查询 ` func GetAWithB(db *gorm.DB) { var aList []ModelA
// 使用Preload预加载关联数据 result := db.Preload("BList").Find(&aList) if result.Error != nil { // 处理错误 }
// 现在aList中的每个ModelA都包含其关联的B列表 for _, a := range aList { fmt.Printf("A: %s\n", a.Name) for _, b := range a.BList { fmt.Printf(" - B: %s\n", b.Name) } } } `