MySQL - 选择具有最大时间戳的唯一列

标签 mysql sql

我正在尝试准备一个查询,但遇到了困难。我需要一些 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/

相关文章:

mysql - 有没有一种方便的方法可以在我的 git 提交中包含一个 mysqldump?

php - 是否有任何可用于 php 的小型 cms

mysql - 你能在 MySQL 上练习 MSSQL 查询吗?

sql - 什么时候适合使用完全外连接?

sql - 无法在 Spark SQL 中执行嵌套的 SQL 查询

sql - 为什么 IN 运算符在传递重复值(value1、value1 ....)时返回不同的选择

php - 将我的文件链接到任何内容并覆盖 mysql.sock

MySQL:选择一组不同(char_length(text_column))记录中的顶部结果

sql - data.frame structure fubar : structure says most character, 打印说只有一些

java - SimpleDateFormat 返回 "Sun Oct 10 00:00:00 BRT 2010"但插入 "2010-10-10"