在MySQL最高值选择行,我想选择一个行对每个“foreign_id”。它必须是列“时间”(DATETIME类型)中具有最高值的行。你能帮我看看SQL SELECT语句的外观吗?谢谢! 这真的太棒了!我已经想了好几个小时寻找解决办法:(与一列在SQL
这是我的表:
primary_id | foreign_id | name | time
----------------------------------------------------
1 | 3 | a | 2017-05-18 01:02:03
2 | 3 | b | 2017-05-19 01:02:03
3 | 3 | c | 2017-05-20 01:02:03
4 | 5 | d | 2017-07-18 01:02:03
5 | 5 | e | 2017-07-20 01:02:03
6 | 5 | f | 2017-07-18 01:02:03
这是结果应该是什么样子:
我试图订购按时间(降序),然后使用限制1.只选择第一行,但这样我不能让每一行对应一个foreign_id中间结果。
另一次尝试,是先订购中中间结果按时间(降序),然后是GROUP BY foreign_id。但GROUP BY语句似乎之前的ORDER BY语句(I接收的primary_id 1和4中的行作为一个结果,而不是图3和5)被执行。
如果表中有与相同的时间戳相同的外键的多行,这个查询将返回所有这些条目。 – dasblinkenlight
我不认为'DISTINCT'是必要的,因为表格上有一个PK,所以所有的行都是不同的。另外,@dasblinkenlight说。 – Blorgbeard
谢谢,这工作正常:)在我的情况下时间戳不能相同,他们之间总是有多个分钟 – user3624130