今天有个需求,是通过两张表进行查询。一对多的关系。通过一个主键,取出其中的一条。
开始以为还好,直接用用了left join on进行查询。却发现了问题所在。
其他的好弄。
开始的写法借鉴这篇博客:
https://bbs.csdn.net/topics/350134616?tdsourcetag=s_pcqq_aiomsg

没能解决问题,因为取出的数据中不是我想要的最新的,而是最小的ID的那个。
为什么会这样呢,了解了才知道,说是group by 分组取出的是按照最小的取出的,我也很绝望!
接下来参照了这个SQL:

SELECT ID,USER_ID,problems,last_updated_date FROM (select * from t_iov_help_feedback order by USER_ID, LAST_UPDATED_DATE DESC) b
GROUP BY b.USER_ID;

参照的是这篇博客:
https://blog.csdn.net/u012660464/article/details/78605078?tdsourcetag=s_pcqq_aiomsg
很郁闷的是,他的博客,他最后取出了最大的值,而我却依旧没有最大值。因为这篇博客的原理就是因为group by取出的是最小的,所以它就先按照ID查出最大的。很显然,又失败了!!!
这个时候,已经弄了一下午,快下班了。
于是又继续看网上的一些博客。
找到了最原始的写法,于是按照最原始的写法:
语法格式是:

SELECT * FROM TABLE WHERE ID IN (SELECT MAX(ID) FROM TABLE GROUP BY [去除重复的字段名列表,....])
1
参照这个格式,去重的写法。进行分组。

最终,达到了我想要的结果。

SELECT
REVISIT_ID,
CONSULTATION_ID,
RESULT_NAME,
REVISIT_TIME
FROM
tb_cloud_consultation_revisit
WHERE REVISIT_ID IN
(SELECT
MAX(REVISIT_ID)
FROM
tb_cloud_consultation_revisit
GROUP BY CONSULTATION_ID )

博客源于:
https://blog.csdn.net/hd243608836/article/details/80088173
接下来就可以很简单的完成剩下的部分了:

SELECT
a.`CONSULTATION_ID` AS consultationId,
a.CONSULTATION_NAME AS consultationName,
a.CONSULTATION_PHONE AS consultationPhone,
a.CONSULTATION_DATE AS consultationDate,
a.MODE_NAME AS modeName,
a.`CHANNEL_NAME` AS channelName,
a.INTENTION_NAME AS intentionName,
a.REASON_NAME AS reasonName,
a.`PENSION_CARD` AS pensionCard,
a.REMARK AS remark,
a.PENSION_NAME AS pensionName,
a.ABILITY_NAME AS abilityName,
b.RESULT_NAME AS resultName
FROM
tb_cloud_consultation a
LEFT JOIN
(SELECT
REVISIT_ID,
CONSULTATION_ID,
RESULT_NAME,
REVISIT_TIME
FROM
tb_cloud_consultation_revisit
WHERE REVISIT_ID IN
(SELECT
MAX(REVISIT_ID)
FROM
tb_cloud_consultation_revisit
GROUP BY CONSULTATION_ID )
) b
ON b.`CONSULTATION_ID` = a.`CONSULTATION_ID`

MySQL的左连接查询,只取出最大的一条数据的更多相关文章

  1. MySql数据库之连接查询

    在MySql数据库中连接查询分为以下几种方式: 1.内连接查询 内连接查询通过关键字 inner join 关键字来实现,通过代码实现: select * from 表1 inner join 表2 ...

  2. 深入浅出:MySQL的左连接、右连接、等值连接

    深入浅出:MySQL的左连接.右连接.等值连接 三种连接的语法 为便于更多的技友快速读懂.理解,我们只讨论2张表对象进行连接操作的情况,大于2张表对象进行的连接操作原理也是一样的. 1.左连接(LEF ...

  3. Mysql 连接查询 Mysql支持的连接查询有哪些

    CREATE TABLE `chx` (   `id` VARCHAR(20) NOT NULL,   `name` VARCHAR(50) DEFAULT NULL,   `name2` CHAR( ...

  4. SQL左连接查询 left join ... on

    左连接查询 保留左边主表的所有行(即使在右表没有匹配的行),右表输出满足 on 条件的行,不满足的输出null   示例:组合两个表 - 力扣 表1: Person +--------------+- ...

  5. mysql left join 左连接查询关联n多张表

    left join 左连接即以左表为基准,显示坐标所有的行,右表与左表关联的数据会显示,不关联的则不显示.关键字为left join on. **基本用法如下: select table a left ...

  6. 【连接查询】mySql多表连接查询与union与union all用法

    1.准备两个表 表a: 结构: mysql> desc a; +-------+-------------+------+-----+---------+-------+ | Field | T ...

  7. mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等

    mysql中的各种jion的记录,以备用时查 1.等值连接和内连接, a.内连接与等值连接效果是相同的,执行效率也相同,只是书写方式不一样,内连接是由SQL 1999规则定的书写方式 比如: sele ...

  8. MySQL 使用左连接替换not in

    众所周知,左连接和右连接的含义是以哪一张表为准. 左连接就是以左表为准,查出的结果中包含左表所有的记录,如果右表中没有与其对应的记录,那么那一行记录中B表部分的内容就全是NULL. 现在有两个表,一个 ...

  9. 深入浅出:MySQL的左连接、右连接、内连接

    http://blog.csdn.net/wyzxg/article/details/7276979 三种连接的语法 为便于更多的技友快速读懂.理解,我们只讨论2张表对象进行连接操作的情况,大于2张表 ...

随机推荐

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-3.在线教育站点需求分析和架构设计

    笔记 3.在线教育站点需求分析和架构设计     简介:分析要开发的功能点和系统架构应该怎样架构 1.开发的功能:                     首页视频列表                ...

  2. docker 搭建私有云盘 Seafile

    缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...

  3. java(SSM)上传文件到七牛云(对象存储)

    项目中会用到大量的图片和小视频,为了分担服务器压力,将文件都放在七牛云.这里的思路很简单, 就是移动端.pc端把文件上传到服务器,服务器做一个临时缓存,保存必要的信息到数据库后, 将文件上传到七牛云, ...

  4. 前端构建工具gulp使用 (转)

    http://www.cnblogs.com/starof/p/5194622.html 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 ...

  5. java+目录上传

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  6. 连载二:RobotFramework+Svn+Jenkins集成测试

    使用SVN和Jenkins完成脚本的持续集成测试 目标: 1)使用svn管理脚本: 2)使用jenkins执行脚本: 3)在jenkins中配置svn自动获取最新的脚本执行: 步骤: (1)安装Jen ...

  7. import、from 模块 import*、reload

    import 模块名.from 模块名 import* 均为导入模块,前者调用模块中函数或者变量时需要添加引用,即模块名.调用函数或者变量名 具体用法见下 https://jingyan.baidu. ...

  8. k8s nginx-ingress 504 timeout

    nginx ingress 报错 504 timeout,是由于反向代理超时造成的,反向代理默认超时时间60s 官方文档 配置片段: apiVersion: extensions/v1beta1 ki ...

  9. 【计算机视觉】【并行计算与CUDA开发】GPU硬解码---CUVID

    问题描述:项目中,需要对高清监控视频分析处理,经测试,其解码过程所占CPU资源较多,导致整个系统处理效率不高,解码成为系统的瓶颈. 解决思路: 利用GPU解码高清视频,降低解码所占用CPU资源,加速解 ...

  10. #内存不够,swap来凑# Linux上创建SWAP文件/分区

    转自:https://www.vmvps.com/how-to-create-a-swap-file-on-the-linux-os.html 很久很久以前,电脑的内存是个珍贵东西,于是乎就有了swa ...