merchant_name商户名称分组及时间倒序排序

最近项目上遇到一个这样的需求,优惠券管理,优惠券里面有涉及到商户信息,要以商户名称分组,时间倒序排序。添加优惠券时间倒序排序,以最新的数据显示在最前面(这里也要是商户组的最新一条显示在最前)。

根据产品经理的要求,写的原sql是这样的,如下:

SELECT b.name as merchant_name,`a`.`update_time`,`b`.`is_qrcode`,b.status as mstatus,`a`.* 
FROM `***_*****_discount` `a`
INNER JOIN `***_******_merchant` `b` ON `a`.`merchant_id`=`b`.`id` 
WHERE `a`.`status` = '0' AND `a`.`id` = '142' 
ORDER BY `b`.`name` DESC,`a`.`update_time` DESC;

执行完看一下效果是这样了,商户信息一起展示了,没想到的是,添加一条新的优惠券信息,你们能想到会是怎样的展示效果吗?万万没想到,它是显示在相应的商户分组的第一条的地方显示,并不是显示在最前面第一条,所以又开始研究,这个sql应该怎样写呢?经过一番修改整理修改整理之后,终于功夫不负有心人,写出来了。

大家想知道最终结果吗?

O(∩_∩)O哈哈~,噔噔噔噔 ,O(∩_∩)O哈哈~

别着急,接下来就给大家展示最终sql语句:

SELECT
b.id,b.name as merchant_name,`b`.`is_qrcode`,b.status as mstatus,`a`.*
FROM `*******表名` `a` 
INNER JOIN `*****表名` `b` ON `a`.`merchant_id`=`b`.`id` 
INNER JOIN
(select max(`a`.`update_time`) addtime,`a`.`merchant_id`,a.name  FROM `*****表名` a group by `a`.`merchant_id`) t
on `a`.`merchant_id`= `t`.`merchant_id`
WHERE `a`.`status` = '0' AND `a`.`id` = '11' 
ORDER BY t.addtime desc,t.merchant_id DESC,`a`.`update_time` DESC

上面sql语句才是正解。

上面sql才是以商户名称分组并且以最新数据显示最前面的sql语句。

标题

 

搞定完成。

如果大家有更好的实现方式,多多益善,大家不要吝啬哦,共同进步,共同学习!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值