gorm增删查改json_gorm 关联查询请教

有如下两张表

type Activity_record struct {

BaseModel

Activity_config_id int `json:"activity_config_id"`

Activity_config Activity_config `json:"ac" gorm:"goreignkey:Activity_config_id"`

Share_user_id int `json:"share_user_id"`

Receive_user_id int `json:"receive_user_id"`

}

type Activity_config struct {

BaseModel

Mgr_user_id int `json:"mgr_user_id"`

Type int8 `json:"type"`

User_restrict int8 `json:"user_restrict"`

Title string `json:"title"`

}

查询语句,用的 gorm:

model.DB.Preload("Activity_config", func(query *gorm.DB) *gorm.DB {

return query.Select("id, type")

}).Select("activity_records.id,activity_records.activity_config_id").Find(&list)

打印的 sql 语句:

[2020-07-06 09:54:57] [1.00ms] SELECT activity_records.id,activity_records.activity_config_id FROM activity_records

[2020-07-06 09:54:57] [0.99ms] SELECT id, type FROM activity_configs WHERE (id IN (35))

返回数据:

[

{

"id": 4,

"activity_config_id": 35,

"ac": {

"id": 35,

"type": 1

}

}

]

但是看起来它执行了两次查询,又没有别的什么方式让生成如下的 sql 语句,并且返回数据结构如上面的结构:如

select ar.*, ac.* from activity_records ar inner join activity_configs ac on ac.id = ar.Activity_config_id

刚开始看 golang,大佬些指点下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值