获取表中用户的最后一条记录

时间:2011-08-25 17:31:22

标签: sql stored-procedures join

我正在从前一个开发人员处理的存储过程是将多个表连接在一起,以返回特定事件的“参与者”的一条记录。有一个表可能没有该事件的信息,但是我仍然需要将该参与者的某些数据最后一次返回到该存储过程中。有一个datalastmodified列,但这不是返回的字段之一。如何在最后一个条目的存储过程中返回有问题的数据?

这是一个样本;如果用户输入的参与者不属于当前事件,则需要在EventAffiliation表中查找该参与者的最后一个条目:

表ParticipantGenInfo

userid,
eventid,
firstname,
lastname,

表EventAffiliation

userid,
eventid,
field,
degree,
degreeyear,
datelastmodified

存储过程示例(左连接是实际代码)

select
     pgi.userid,
     pgi.firstname,
     pgi.lastname,
     ea.field,
     ea.degree,
     ea.degreeyear
from ParticipantGenInfo pgi
left join EventAffiliation ea
     on pgi.userid = ea.userid and pgi.eventid = ea.eventid
where pgi.eventid = 'xxxxx'

1 个答案:

答案 0 :(得分:0)

你的问题太过模糊,无法回答,但你会想要这样的查询:

SELECT TOP 1 ... FROM ... LEFT JOIN ... ORDER BY DataLastModified DESC