日期:2014-05-18  浏览次数:20536 次

SQL查询不重复记录的问题
假如数据如下
id editno delflag
1 1 0
1 2 0
1 3 0
2 1 0
2 2 0
2 3 0

我现在要取红色的记录,也就是说id不重复,editno最大的那个,请问SQL怎么写啊?

------解决方案--------------------
SQL code
SELECT *
FROM tb AS A
WHERE editno = (SELECT MAX(editno) FROM tb WHERE A.id=id)

------解决方案--------------------
SQL code
SELECT * FROM TB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE ID=T.ID AND editno>T.editno)

------解决方案--------------------
select *
from ta a
where not exists(select 1 from ta where id = a.id and editno > a.editno)
------解决方案--------------------
SQL code
select tb.* from tb join (select id,max(editno) editno from tb) a on tb.id=a.id and tb.editno=a.editno