gorm join连接查询
时间: 2023-10-14 12:31:09 浏览: 68
在 GORM 中,可以通过 `Join` 方法来进行连接查询。`Join` 方法接收两个参数:连接类型和连接的表名或结构体名。
假设我们有两个结构体 `User` 和 `Profile`,它们之间有一对一的关系,即一个用户对应一个个人资料。那么我们可以使用以下代码进行连接查询:
```go
type User struct {
ID uint
Name string
Profile Profile
ProfileID uint
}
type Profile struct {
ID uint
Age int
Gender string
Address string
}
db.Table("users").
Joins("left join profiles on users.profile_id = profiles.id").
Select("users.id, users.name, profiles.age, profiles.gender, profiles.address").
Scan(&result)
```
在上面的代码中,我们使用 `Joins` 方法来进行左连接查询,连接的表是 `profiles`,连接条件是 `users.profile_id = profiles.id`。使用 `Select` 方法指定需要查询的字段,并使用 `Scan` 方法将查询结果扫描到 `result` 变量中。
注意,在进行连接查询时,需要使用 `Scan` 方法来扫描查询结果,而不能使用 GORM 的普通查询方法。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)