mysql中一个人多条数据照时间获取最新的数据

业务场景:人员某一关联表中 有多条信息,只查询最新的一条进行展示

  SELECT
        *
        FROM
        (
        SELECT
        alu.alumniuser_id,
        alu.`name`,
        alu.gender,
        ma.major_name AS majorName,
        dept.dept_name AS deptName,
        edu.leave_year AS leaveYear,
        exc.status AS exchangeNewsStatus
        FROM
        alumniuser alu
        LEFT JOIN exchange_card exc ON alu.alumniuser_id = exc.accept_id
        LEFT JOIN educationinfo edu ON alu.alumniuser_id = edu.alumniuser_id
        LEFT JOIN major ma ON ma.major_id = edu.major_id
        LEFT JOIN department dept ON edu.dept_id = dept.dept_id
        <where>
            exc.applicant_id = #{userId}
            <if test="keyWords != null and keyWords !=''">
                <bind name="keyWords" value="'%' + keyWords + '%'"/>
                and CONCAT(alu.`name`,alu.alumniuser_id,dept.dept_name,ma.major_name) like #{keyWords}
            </if>
        </where>
        having 1 //筛选1条
        ORDER BY
        edu.leave_year DESC //按照时间降序
        ) AS t
        GROUP BY
        t.`name` 
        order by t.exchangeNewsStatus DESC
    </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取MySQL最新的一条数据,可以使用以下两种方法: 方法一: 使用ORDER BY和LIMIT 可以使用ORDER BY子句按照时间字段的降序排列,然后使用LIMIT关键字来限制结果集的数量为1。具体的SQL查询语句如下: SELECT * FROM 表名 ORDER BY 时间字段 DESC LIMIT 1; 方法二: 使用ROW_NUMBER()函数 如果需要根据某个字段分组,并获取每个分组最新一条数据,可以使用ROW_NUMBER()函数和子查询的方式。具体的SQL查询语句如下: SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 时间字段 DESC) AS rowNum FROM 表名 t ) a WHERE a.rowNum = 1; 需要注意的是,上述示例的"表名"和"时间字段"需要根据实际情况替换为对应的表名和时间字段名称。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [mysql获取数据最新的一条](https://blog.csdn.net/m0_62446245/article/details/127548147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql 获取最新一条数据](https://blog.csdn.net/Sen__Sen/article/details/82252587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值