GORM join关联查询
时间: 2023-11-25 07:52:16 浏览: 83
Grails GORM查询.pdf
以下是使用GORM进行join关联查询的示例代码:
```go
type Service struct {
ServiceID int
ServiceName string
SystemID int
System System
}
type System struct {
SystemID int
SystemName string
}
var services []Service
db.Table("go_service_info").Select("go_service_info.service_id, go_service_info.service_name, go_system_info.system_id, go_system_info.system_name").Joins("left join go_system_info on go_service_info.system_id = go_system_info.system_id").Scan(&services)
```
在这个示例中,我们定义了两个结构体:Service和System。Service结构体包含了ServiceID、ServiceName、SystemID和System四个字段,其中System字段是一个System结构体类型。System结构体包含了SystemID和SystemName两个字段。
我们使用db.Table()方法指定要查询的表名,然后使用Select()方法指定要查询的字段。在这个例子中,我们查询了go_service_info表中的service_id和service_name字段,以及go_system_info表中的system_id和system_name字段。
接下来,我们使用Joins()方法指定要进行关联查询的表和关联条件。在这个例子中,我们使用了left join关键字,将go_service_info表和go_system_info表进行了关联,关联条件是go_service_info表的system_id字段等于go_system_info表的system_id字段。
最后,我们使用Scan()方法将查询结果保存到services变量中。
阅读全文