gorm联表查询-实战

缘起
  • 做一个政府项目遇到的一个项目需求所需要的技术
  • 需求背景大概是这样:有一张workers表,一张worker_records表,工作人员的信息记录在workers表,同时当工作人员上班时候会打卡,而打卡记录就在这个worker_records表
workers表部分需要用到字段如下 worker_records表部分需要用到字段如下
gzryxm——意为:工作人员姓名 gzrxm——意为:工作人姓名
gzrysjh——意为:工作人员手机号 gzrsjh——意为:工作人手机号
gzrysfz——意为:工作人员身份证 gzrsfz——意为:工作人身份证
  • 身份证号唯一

  • 需求:拿到未打卡人的姓名,手机号,身份证号

  • 画出图就是以下这样

gorm实现
 db.Model(&Worker{}).Select("workers.csbh,workers.gzryxm,workers.gzrysjh,workers.gzrysfz").Joins("left join worker_records on workers.gzrysfz = worker_records.gzrsfz").Where("worker_records.gzrsfz", nil).Scan(&notClockedInPeopleAll)
MySQL原生实现
SELECT w.gzryxm,w.gzrysjh,w.gzrysfz
FROM workers w
LEFT JOIN worker_records wr
ON w.gzrysfz = wr.gzrsfz
WHERE wr.gzrsfz IS NULL

如此便实现了需求所需。

拓展

两表联表查询具体可以分为七种,见网图如下:

gorm联表查询-实战相关推荐

  1. 【最佳实践】gorm 联表查询 joins

    内容 使用gorm的一些技巧.经验 常规使用示例 如何在一对一.一对多.多对一的关系下使用gorm进行联表查询 其他gorm使用和进阶用法参考官方文档 https://gorm.io/zh_CN/do ...

  2. 一篇搞定Sql联表查询

    文章目录 前言 级联 联表查询 左/右联表 多表联查 前言 刚好最近玩mybatisplus,就顺便再整理一下有关Sql 的内容.本来是想要全部整理一下的,突然发现前面也写了一些博客关于数据库的讲的其 ...

  3. Spring Hibernate JPA 联表查询 复杂查询

    (转自:http://www.cnblogs.com/jiangxiaoyaoblog/p/5635152.html) 今天刷网,才发现: 1)如果想用hibernate注解,是不是一定会用到jpa的 ...

  4. (转)MySQL联表查询

    资料源于网络 一.内联结.外联结.左联结.右联结的含义及区别 在SQL标准中规划的(Join)联结大致分为下面四种: 1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结. ...

  5. MYSQL 联表查询 ORDER 效率低?

    今天在处理一个分页时候,发现速度感人,点下一页等了半天.然后查看代码,发现是一个left jion语句. SELECT DISTINCT ordr.id,ordr.*,cf.nickname FROM ...

  6. 【explain】MySQL联表查询中的驱动表

    写在前面 1.不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程 2.不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小 3 ...

  7. mysql带账号联查表_MySQL联表查询的简单示例

    MySql会用到联表查询,对于刚学习的新手来说,可能会理解起来有难度.下面这篇文章就来给大家详细介绍MySQL联表查询的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 关系型 ...

  8. mysql的联表查询和去重复数据

    mysql的联表查询和去重复数据 /* SQLyog Ultimate v10.00 Beta1 MySQL - 5.7.17-log : Database - pusmtnew ********** ...

  9. mysql left join 查询_MySQL联表查询基本操作之left-join常见的坑

    概述 对于中小体量的项目而言,联表查询是再常见不过的操作了,尤其是在做报表的时候.然而校对数据的时候,您发现坑了吗?本篇文章就 mysql 常用联表查询复现常见的坑. 基础环境 建表语句 DROP T ...

最新文章

  1. 为什么 GROUP BY 之后不能直接引用原表中的列?
  2. 【bzoj4916】神犇和蒟蒻 杜教筛
  3. C++和Rust_C 还是 Rust:选择哪个用于硬件抽象编程 | Linux 中国
  4. 「Python」超简单!Python返回矩阵最大元素/最小值坐标,三行搞定!(更新:一行搞定!)
  5. 轻量级文本编辑器,Notepad最佳替代品:Notepad++
  6. E - Another Postman Problem FZU - 2038
  7. 主席树【bzoj3524(p3567)】[POI2014]Couriers
  8. context:component-scan扫描使用上的容易忽略的use-default-filters
  9. Gitlab Java API 使用示例
  10. 用js和jq分别实现二级联动效果
  11. python爬虫什么意思-python的爬虫是什么意思
  12. uniapp中使用colorUI说明文档
  13. 苹果手机长截屏_iPhone终于自带长截屏了?苹果手机这些截图方式,你用过几种?...
  14. CentOS 安装SVN客户端
  15. windows10桌面_32位windows10系统正式版推荐下载
  16. python docx文档内容提取与写入(汇总)
  17. Tumblr,instapaper分享
  18. 13.PIO源码详解3-PIO模块(PIO.v)剖析
  19. vscode 报Open a folder or workspace... (File -> Open Folder)解决办法
  20. VLC保存网络流到软件和fiddler下载视频

热门文章

  1. web前端组件开发 之 弹窗组件实现
  2. oracle退出本循环,Oracle,跳出游标循环
  3. win10脚本运行问题
  4. 关于Redis分片机制说明
  5. iES-AMR2000直读式自动抄表系统
  6. 北京2008年奥运会奖牌设计公布
  7. java冒泡排序获取最大值_Java干货分享:冒泡排序
  8. 解读Android之数据存储方案
  9. java足球经理手机下载_职业足球经理2008
  10. linux查看python3的安装路径,linux查看python安装路径的方法