mysql - 获取数据库中最新添加的记录

标签 mysql database select-query

我只能通过例子来描述这个问题.. 如果我有这些数据

    use-id         user-name          add-date
---------------------------------------------------
    2              sami               17/1/2011
    2              sami               18/1/2011
    3              alaa               18/1/2011
    4              jamal              19/1/2011

我想为每个用户选择最新的行,我希望得到这些数据:

    use-id         user-name          add-date
---------------------------------------------------
    2              sami               18/1/2011
    3              alaa               18/1/2011
    4              jamal              19/1/2011

我想为每个唯一的用户 ID 获取最新添加的记录。怎么样?

最佳答案

一种方法是获取每个用户的最新记录的日期:

select `use-id`, max(`add-date`) as `latest` 
from <table_name> 
group by `use-id`

我们将该查询称为newest_records,并使用它来仅选择那些具有最新日期的行:

select a.*
from <table_name>
inner join newest_records b
on a.`use-id` = b.`use-id` and a.`add-date` = b.`latest`

编辑:

将它们放在一起(复制/粘贴),我们有:

select a.*
from <table_name>
inner join (  
  select `use-id`, max(`add-date`) as `latest` 
  from <table_name> 
  group by `use-id`) b
on a.`use-id` = b.`use-id` and a.`add-date` = b.`latest`

关于mysql - 获取数据库中最新添加的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184103/

相关文章:

mysql - 通过关系表连接表

php - 禁用 Update_Current_Timestamp MYSQL?

mysql - PhpMyAdmin 数据库导出。

html - 选择查询 - WebSQL

hive - 删除并重新创建 Hive 外部表,但未显示数据

php - 从表中获取多个ID的最后插入数据?

mysql - mysql 5.6 中的性能问题

sql - 撤销对表 pg_proc 上的 postgresql 中不工作的特定列的访问

apache-spark - Spark : load or select Hive table of ORC format

mysql - MySQL数据库有关系约束时如何插入数据