zoukankan      html  css  js  c++  java
  • 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 [去除重复的字段名列表,....])
    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`

  • 相关阅读:
    ASP下的URL重写
    经典日历
    asp中使用存储过程
    带进度条的ASP无组件断点续传下载代码
    XML与ASP简单结合实现HTML模板功能
    ASP函数
    CSS垂直树形下拉列表
    ASP无组件上载,带进度条,多文件上载。。
    采用AJAX实现带进度条的文件上传
    Rose与PowerDesigner:两款建模工具对比分析比较
  • 原文地址:https://www.cnblogs.com/brady-wang/p/10929778.html
Copyright © 2011-2022 走看看