如何根据 交易流水表和卡信息 对卡的消费时间进行排序

2019-08-22 11:12:44 +08:00
 Renco

有这么一个需求,就是会员中的会员卡信息,要按照会员卡的消费时间排序,最后消费的排序在最前面

服务器 mysql 版本做了配置 不能用 distinct 或者 group by 这种方式

不使用这种会导致 关联交易流水表的时候会查到多个重复数据,这种情况下要怎么样实现需求

3931 次点击
所在节点    MySQL
10 条回复
lllllliu
2019-08-22 15:38:59 +08:00
[
{
}
]
lllllliu
2019-08-22 15:41:21 +08:00
obj = [
{
会员卡信息...
会员消费信息:[
{消费时间...}
...
]
}
...
]
然后根据 item->消费记录->Max(消费时间) 对 item 进行排序。。。应该就好了吧。
lllllliu
2019-08-22 15:42:14 +08:00
或者。。直接拿所有的消费记录来排序。。然后在关联查询会员卡。
taotaodaddy
2019-08-22 16:00:07 +08:00
min max
taotaodaddy
2019-08-22 16:01:06 +08:00
不能 group by,哟可能败了
taotaodaddy
2019-08-22 16:01:39 +08:00
哟改为我
stillyu
2019-08-22 16:14:35 +08:00
会员卡信息加个最后消费时间的字段?
Renco
2019-08-22 16:17:55 +08:00
@stillyu 如果是我 我就这么设计了,然而开发人员不能改设计啊可恶
saulshao
2019-08-22 18:01:19 +08:00
如果不能 distinct 或者 group by,那也不建议 join。
能用的办法就很有限了。
1. 查出所有的会员,想点办法过滤掉一些肯定没消费的。或者每次只处理一定范围的会员记录。
2. 根据会员去消费记录表查询需要的记录,在内存里排序并构造需要排序的结果
3. 排序
上述的步骤假设会员表肯定比消费记录表小,如果反之就倒过来写程序就行。长期来看应该是会员表更小才对.....
conn4575
2019-08-23 05:52:10 +08:00
我更好奇为啥不让用 group by

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594118

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX