选择每个不同外键值的最新行

Joh*_*non 7 sql sql-server-2005 greatest-n-per-group

原谅标题,我无法想出一些简短的事情......

我有一个表'更新'与三列,text,typeid,created - text是一个文本字段,typeid是来自'type'表的外键,并创建了一个时间戳.用户正在输入更新并选择它对应的"类型".

有一个对应的'type'表,列'id'和'name'.

我试图得到一个结果集,其中包含'type'表中的行数,以及来自updates.text的最新值,用于类型中的特定行.因此,如果我有3种类型,将返回3行,每种类型一行,以及相关类型的最新updates.text值.

有任何想法吗?

谢谢,

约翰.

Red*_*ter 14

select u.text, u.typeid, u.created, t.name
from  (
    select typeid, max(created) as MaxCreated
    from updates
    group by typeid
) mu
inner join updates u on mu.typeid = u.typeid and mu.MaxCreated = u.Created
left outer join type t on u.typeid = t.typeid
Run Code Online (Sandbox Code Playgroud)