【发布时间】:2017-03-25 19:36:57
【问题描述】:
表:
----------------------------------------------------
ID | field_name | field_value | timestamp
----------------------------------------------------
2 | postcode | LS1 | 2016-11-09 16:45:15
2 | age | 34 | 2016-11-09 16:45:22
2 | job | Scientist | 2016-11-09 16:45:27
2 | age | 38 | 2016-11-09 16:46:40
7 | postcode | LS5 | 2016-11-09 16:47:05
7 | age | 24 | 2016-11-09 16:47:44
不知道有没有人可以指点一下,根据上面的数据,我想通过ID 2查询,为每个唯一的field_name返回一行(如果同一个id下存在多行同field_name 然后只返回具有最新时间戳的行)。
我几乎通过对 field_name 进行分组来实现这一点,这将返回唯一行的列表,但不一定是最新的行。
SELECT * FROM fragment WHERE (id = :id) GROUP BY field_name
我真的很感激任何关于我应该在这里做什么的指针,以及我如何在这个查询中按照 MAX(timestamp) 的线来适应一些东西,
非常感谢!
【问题讨论】: