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,大佬些指点下
gorm增删查改json_gorm 关联查询请教相关推荐
- gorm增删查改json_go基于echo、gorm实现增删改查,从请求到落库
go就不多介绍了直接上菜了. 一.项目解构 conf // 配置相关 dao // 数据库 log // 日志 router // 路由相关,相当于java springMVC中controller ...
- mongodb java条件查询_java实现对mongodb,泛型封装增删查改、条件查询等操作
本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...
- java操作mongodb,泛型封装增删查改、条件查询等操作
本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...
- 数据库的增删查改(全部重点知识一篇整合,包括数据库查询的进阶内容)
目录 一.新增数据 (1)单行数据全列输入 (2)指定列插入 (3)多行插入 二.简单查询数据 (1)全列查询 (2)指定列查询 (3)查询的字段是表达式 (4)去重操作distinct (5)排序操 ...
- ASP.NET两个关联的表的增删查改
两个关联的表的增删查改 主要用了参数 SqlParameter,事务执行多条sql 表Users ID int Name varchar 表UsersDetail ID ...
- (9) ebj学习: Jpa的增删查改,CURD方法监听和命名查询
1 整体结构 client文件存放 ejb客户端的一些jar包 Animal.java 中配置命名查询 Person.java 中实现了方法监听和类监听两种监听方式( 在增删查改方法执行之前后之后调用 ...
- java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】
本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...
- mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改
## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...
- 【C++ 语言】vector 容器 ( 容器分类 | vector 声明 | vector 初始化 | vector 容器元素增删查改 )
文章目录 序列式容器 vector 简介 vector ( 向量 ) 头文件 vector ( 向量 ) 声明及初始化 vector ( 向量 ) 添加元素 vector ( 向量 ) 查询元素 ve ...
最新文章
- 从一个死锁看mysql innodb的锁机制
- idea自动生成方法注释(含参数及返回值)
- 抽象工厂模式(JAVA反射)
- Apache Mahout:入门
- Redmi K50系列年后登场:最高搭载天玑9000+2K直屏
- 使用Leaflet创建地图拓扑图
- 深入理解l内核v4l2框架之video for linux 2(转载)
- Turbo C 2.0安装及其使用
- 计算机1级题库软件,计算机一级软件哪个好_计算机一级刷题软件_计算机一级试题软件...
- 基于springboot旅游系统
- PS不会用?史上最全面的PS快捷键图文使用指南来了!
- 康熙不愧大帝——且看他是怎样交班的
- Mezzanine 修改默认主页
- Java获取单词的首字母的方法_java – 从句子中的每个单词中提取第一个字母
- 牛人整理的一些查询国内外文献资料的实用网站,专业啊,吐血推荐!
- 数据到底如何搞定电影票房预测?
- 智美2.0 文字格式化
- 双网卡电脑的Internet连接共享
- 使用cmake配置aws-cpp-sdk以及在cmake项目中使用
- uos系统忘记密码破解步骤
热门文章
- Matlab mean() mean2() std() 函数的使用
- OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
- MVC模式和文档/视图结构
- OpenCV图像处理——copyTo与mask(掩码)操作
- Visual Studio 2015 编译与使用Boost库进行文件与目录的操作
- 数字图像处理实验(3):PROJECT 02-03, Zooming and Shrinking Images by Pixel Replication
- python思维导图完整版下载高清_快速学习 Python 的全套 14 张思维导图(附高清版下载)...
- ubuntu9.10硬盘安装记录二
- (JAVA)String常用的方法
- 7天攻克运维瓶颈 玩转立体运维