按组获取最新值(用于加入)

时间:2015-03-23 07:52:48

标签: mysql max left-join

我有两张桌子。在xDATA我有关于任务的信息,在xSTATUS我有任务进展。

它是这样的:

{xDATA}
ID|description|...
------------------
 1|...
 2|...
 3|...

xSTATUS表中的数据由时间戳指定:

{xSTATUS}
timestamp          |ID|status
--------------------------------
2015-03-22 12:22:33| 1|Added
2015-03-22 14:00:03| 1|Assigned
2015-03-23 08:00:00| 2|Added
2015-03-23 12:00:00| 1|Completed

对于预览,我想要IDdescription和最新status。有没有办法获得最新的价值(例如使用GROUP BY)?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以将left join用作

select 
xd.*,
st.status 
from xdata xd join xstatus st on st.id = xd.id 
left join xstatus st1 on st.id = st1.id 
and st.timestamp < st1.timestamp 
where st1.id is null ;

还有其他可用的技巧,请点击此处http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html