我正在尝试准备一个查询,但遇到了困难。我需要一些 MySQL 专家的帮助...
以下表为例...
CREATE TABLE <code>order_revision</code> (
<code>id</code> int(11) NOT NULL,
<code>parent_order_id</code> int(11) NOT NULL,
<code>user_id</code> int(11) DEFAULT NULL,
<code>sub_total</code> decimal(19,4) NOT NULL DEFAULT '0.0000',
<code>tax_total</code> decimal(19,4) NOT NULL DEFAULT '0.0000',
<code>status</code> smallint(6) NOT NULL DEFAULT '1',
<code>created_at</code> int(11) NOT NULL,
<code>updated_at</code> int(11) DEFAULT NULL
)
我需要一个查询来选择所有具有最大“updated_at”值的唯一“parent_order_id”。此查询应根据“updated_at”列的最大时间戳返回具有唯一“parent_order_id”的所有行。
换句话说,返回的每一行都应该有一个唯一的“parent_order_id”,并且是“updated_at”列的最大时间戳。
基本上这个查询会为每个“父订单”找到最新的“订单修订”
最佳答案
你的意思是:
SELECT parent_order_id,max(updated_at) FROM order_revision GROUP BY parent_order_id
对于 MySQL,GROUP BY
- 子句甚至不是必需的,但我还是将其包括在内以作澄清(大多数其他符合 SQL 的服务器都需要它)。
关于MySQL - 选择具有最大时间戳的唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778804/