mysql-获取给定列值列表的最新记录

hrysbysz  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(272)

我有以下表格结构:
请求表:

id  insret_time             account id
 ------------------------------------
 1  2018-04-05 08:06:23       abc
 2  2018-09-03 08:14:45       abc
 3  2018-08-13 09:23:34       xyz
 4  2018-08-04 09:25:37       def
 5  2018-08-24 11:45:37       def

我需要找到帐户ID 和def的最新记录。我不在乎xyz。
我尝试使用groupby和innerjoin方法来获得结果,但是没有成功地将结果限制在我关心的用户列表中。请给出建议
更新:谢谢大家的反馈。谢谢你!我需要整行作为输出。我使用id列而不是timestamp来获取最新的记录,因为它是自动递增的这是我最终想到的,它提供了我需要的输出:

select t.* FROM table t
join (select max(table.id) as maxNum from table 
where account_id in ('abc','def') group by account_id) tm on t.id = tm.maxNum;
brjng4g3

brjng4g31#

我想这就是你要找的

select account_id,max(insret_time)
  from table where account_id in ('abc', 'def')
  group by account_id
cwtwac6a

cwtwac6a2#

你可以用 not in 忽略 xyz 记录和下订单 desc :

select account_id,max(insert_time) from table where account_id not in ('xyz') group by account_id order by id desc

你也可以用 != 仅用于一个表达式的运算符:

select account_id,max(insert_time) from table where account_id!='xyz' group by account_id order by id desc

希望有帮助:)

相关问题