合并字段下面相同内容并按时间排序的sql

文章描述了一条SQL查询,用于在一个数据管理功能中,将项目按照名称归类,并根据每个项目的最新更新时间降序排列。查询使用了LEFTJOIN和GROUPBYwithMAX()来获取每个项目的最近更新时间,然后根据这些时间及项目名进行排序。
摘要由CSDN通过智能技术生成

记录一条sql,最近公司需要我做一个跟进数据管理功能。

要求 项目名称一致的放在一起,然后按照每个项目更新记录最新的时间排序,再组内排序

sql具体如下

    select
            u.`name` as gjUser,
            u.id as gjUserId,
            pf.project_name as projcetNum,
            p.`name` as projectName,
            pf.project_follow_time as gjTime,
            et.project_name as gjType,
            pf.project_follow_detail as gjDetail,
                        pt.maxtime
                    
        FROM project_follow pf
                 left JOIN    excel_template et ON pf.excel_template_id = et.id
                 left JOIN    `user` u ON pf.follow_user_id = u.id
                 LEFT JOIN project p ON pf.project_name = p.project_no
                                 LEFT JOIN (select pe.project_name,MAX(pe.project_follow_time) as maxtime FROM project_follow pe
WHERE pe.follow_user_id =23
GROUP BY pe.project_name) pt ON pf.project_name =pt.project_name
        where pf.follow_user_id=23
                ORDER BY pt.maxtime DESC,pf.project_follow_time DESC,p.`name`

难点主要是按照每个项目的记录更新最薪时间排序,因为公司用的mysql5.7,只能用原始的关键字。所以我就多进行了一次连表,这次连表是为了取得每个项目的最新时间,所以用了group by

加max()关键字。连表成功后 最终order by 排序就好做了。 

图片是这条sql执行的结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值