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