SQL 取出满足条件的最新一条数据

场景是查出某手机号最新一条订单匹配到的所有优惠活动。 订单表中有手机号,订单活动表与订单表通过order_no匹配。

经过实践下面的写法效率比较高,比按时间排序快得多。而且子查询只返回一条结果,对内存的占用也比较好。

select *
from o_order_act
where ORDER_NO =
      (select ORDER_NO
       from o_order
       where o_order.APPLY_TIME = (SELECT MAX(APPLY_TIME) as APPLY_TIME from o_order where MOBILE = '18012344321'));