mysql获取每个订单留言的最新一条记录

时间:2025-04-08 18:12:45

假设订单留言记录表名为 order_messages,其中包含字段 order_idmessagecreated_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 )