关于sql查询的问题

unreal_tc 2016-12-05 12:35:56
是这样,我大概说两张表吧,一个是成交表,一个是流水表。一对多的关系
经理给起的名字,功能实际上不是这样的,成交表说白了就是当用户订货的时候生成一个成交表,然后之后比如说付款啊发货啊收货这些流程全在流水表里操作,也就是说,我想得到这个订单现在的状态的话就要查最近一条流水表,看她的状态是发货还是别的什么的。
现在有一个需求,需要根据别的条件(比如说用户id等等)查询出这个用户所有的订单信息,那么问题来了,怎么获取到状态的那个记录。
因为我能根据用户查到成交表(就能获取到类似卖家,花了多少钱,收货地址等字段),但是状态存放在流水表里,我有可能查的是两个订单,所以不能根据最近一条这样去操作吧。
举个例子,我买了一个手机和一个键盘,然后我点击查看我的订单,之后就会根据我的ID查询到成交表里有两条信息(手机和键盘),之后根据这两条信息我可以查询到流水表里有五行信息,其中3条是关于手机的,2条是关于键盘的,这时候我想得到最新的状态信息,但是又不能根据这5条信息的创建时间取最近的1条,这种情况下怎么办呢?
我自己想到了两种方案
1.查询所有的成交表之后返回给service层,之后根据成交id查询最近的状态
2.写成存储过程

但这两中方式对资源的消耗都比较大,请问有没有哪位前辈有更好的方法和建议?
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtujedp 2016-12-06
  • 打赏
  • 举报
回复
把状态的值按先后顺序分别设置成1,2,3,成交表只要关联流水表里状态值最大的一条记录,就是最近的状态。
unreal_tc 2016-12-05
  • 打赏
  • 举报
回复
附一下表字段,让大家有能方便给建议

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧