有如下两张表

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 关联查询请教相关推荐

  1. gorm增删查改json_go基于echo、gorm实现增删改查,从请求到落库

    go就不多介绍了直接上菜了. 一.项目解构 conf // 配置相关 dao // 数据库 log // 日志 router // 路由相关,相当于java springMVC中controller ...

  2. mongodb java条件查询_java实现对mongodb,泛型封装增删查改、条件查询等操作

    本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...

  3. java操作mongodb,泛型封装增删查改、条件查询等操作

    本文实现一个通用泛型封装实现类,需要给定一个集合对象,类似mysql中与java对应的表:思想就是把给定的对象解析出所有非空字段,保存到一个BasicDBObject中,这里一定要保证java对象与m ...

  4. 数据库的增删查改(全部重点知识一篇整合,包括数据库查询的进阶内容)

    目录 一.新增数据 (1)单行数据全列输入 (2)指定列插入 (3)多行插入 二.简单查询数据 (1)全列查询 (2)指定列查询 (3)查询的字段是表达式 (4)去重操作distinct (5)排序操 ...

  5. ASP.NET两个关联的表的增删查改

    两个关联的表的增删查改 主要用了参数 SqlParameter,事务执行多条sql 表Users ID         int Name   varchar 表UsersDetail ID       ...

  6. (9) ebj学习: Jpa的增删查改,CURD方法监听和命名查询

    1 整体结构 client文件存放 ejb客户端的一些jar包 Animal.java 中配置命名查询 Person.java 中实现了方法监听和类监听两种监听方式( 在增删查改方法执行之前后之后调用 ...

  7. java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

    本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...

  8. mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改

    ## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...

  9. 【C++ 语言】vector 容器 ( 容器分类 | vector 声明 | vector 初始化 | vector 容器元素增删查改 )

    文章目录 序列式容器 vector 简介 vector ( 向量 ) 头文件 vector ( 向量 ) 声明及初始化 vector ( 向量 ) 添加元素 vector ( 向量 ) 查询元素 ve ...

最新文章

  1. 从一个死锁看mysql innodb的锁机制
  2. idea自动生成方法注释(含参数及返回值)
  3. 抽象工厂模式(JAVA反射)
  4. Apache Mahout:入门
  5. Redmi K50系列年后登场:最高搭载天玑9000+2K直屏
  6. 使用Leaflet创建地图拓扑图
  7. 深入理解l内核v4l2框架之video for linux 2(转载)
  8. Turbo C 2.0安装及其使用
  9. 计算机1级题库软件,计算机一级软件哪个好_计算机一级刷题软件_计算机一级试题软件...
  10. 基于springboot旅游系统
  11. PS不会用?史上最全面的PS快捷键图文使用指南来了!
  12. 康熙不愧大帝——且看他是怎样交班的
  13. Mezzanine 修改默认主页
  14. Java获取单词的首字母的方法_java – 从句子中的每个单词中提取第一个字母
  15. 牛人整理的一些查询国内外文献资料的实用网站,专业啊,吐血推荐!
  16. 数据到底如何搞定电影票房预测?
  17. 智美2.0 文字格式化
  18. 双网卡电脑的Internet连接共享
  19. 使用cmake配置aws-cpp-sdk以及在cmake项目中使用
  20. uos系统忘记密码破解步骤

热门文章

  1. Matlab mean() mean2() std() 函数的使用
  2. OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
  3. MVC模式和文档/视图结构
  4. OpenCV图像处理——copyTo与mask(掩码)操作
  5. Visual Studio 2015 编译与使用Boost库进行文件与目录的操作
  6. 数字图像处理实验(3):PROJECT 02-03, Zooming and Shrinking Images by Pixel Replication
  7. python思维导图完整版下载高清_快速学习 Python 的全套 14 张思维导图(附高清版下载)...
  8. ubuntu9.10硬盘安装记录二
  9. (JAVA)String常用的方法
  10. 7天攻克运维瓶颈 玩转立体运维