假设订单留言记录表名为 order_messages
,其中包含字段 order_id
、message
、created_at
,则可以使用以下 SQL 语句获取每个订单留言的最新一条记录:
方法1:
SELECT om1.*
FROM order_messages om1
INNER JOIN (
SELECT order_id, MAX(created_at) AS max_created_at
FROM order_messages
GROUP BY order_id
) om2 ON om1.order_id = om2.order_id AND om1.created_at = om2.max_created_at
这里使用了子查询来获取每个订单的最新留言记录,然后再与 order_messages
表自身关联,获取符合条件(最新创建时间)的订单留言记录。
方法2:
SELECT * FROM order_messages WHERE (order_id, created_at) IN ( SELECT order_id, MAX(created_at) FROM order_messages where order_id in('.$order_id_str.') GROUP BY order_id )