Mysql - 使用Joins根据最新日期从表中选择nid

时间:2013-01-13 04:59:47

标签: mysql

表格 - 表1

表1
- 包含字段 - (nid,date,profileid)
- 包含数据(1,2012-12-1,12),(2,2013-5-12,12),(3,2012-10-10,13),(4,2013-1-20,13)

预期输出 - 根据每个profileid的最新日期选择nid

我无法根据最新日期分组从profileid

中选择表格中的nid

2 个答案:

答案 0 :(得分:2)

我相信你想要这样的东西:

select 
   nid, 
   profileid 
from Table1 
group by profileid 
having max(`date`)

稍微更精确的方法是使用派生表来获取最大日期并加入到您想要的表格中:

select 
   Table1.nid, 
   Table1.profileid 
from Table1
 inner join (select profileid, 
             max(date) as maxdate 
             from Table1
             group by profileid) derived on Table1.date = derived.maxdate
                                  and Table1.profileid = derived.profileid

SQL FIDDLE DEMO

答案 1 :(得分:0)

你是说这个意思吗? 通过profileid从table1组中选择nid,max(date)