我只能通过例子来描述这个问题.. 如果我有这些数据
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/