SQL:某个字段重复的时候只查询出最后插入的那条
原文发布时间为:2009-04-11 —— 来源于本人的百度文章 [由搬家工具导入]
数据库com中有下列数据
id,userid,tupian,time
1 3 3 2006.3.5
2 4 4 2006.3.7
3 4 5 2006.3.8
4 2 5 2006.3.2
----------------
我想对输出的结果,userid为4的重复记录,只显示时间较晚一条,其他多于过滤,结果为
1 3 3 2006.3.5
3 4 5 2006.3.8
4 2 5 2006.3.2
也就是说,不光userid不能重复,而且要能取出一条.
select top 20 * from COM a where time in (select max(time) from COM b where b.userid=a.userid) order by id
如果时间是根据ID主键的先后顺序来的,还有一种方法可用:
select * from COM where id in(select max(id ) from COM group by userid)