MySQL的左连接查询,只取出最大的一条数据

今天有个需求,是通过两张表进行查询。一对多的关系。通过一个主键,取出其中的一条。
开始以为还好,直接用用了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 [去除重复的字段名列表,....])

参照这个格式,去重的写法。进行分组。
在这里插入图片描述
最终,达到了我想要的结果。

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` 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

virtuousOne

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值