注册 登录
编程论坛 SQL Server论坛

[求助]查出表中的惟一数据

lian8088 发布于 2006-11-01 14:37, 1050 次点击
比如数据库中有这么些数据:
id UserID name VisitDate VisitIp
1 1 ak47 2006-11-01 191.165.223.58
2 2 empty 2006-10-31 192.168.223.100
3 1 ak47 2006-10-30 194.146.233.43
4 1 empty 2006-10-30 191.165.223.58
5 3 link 2006-10-30 156.175.253.58
6 1 empty 2006-10-29 191.165.223.58

通过查询,怎样得到以下的结果:
1 1 ak47 2006-11-01 191.165.223.58
2 2 empty 2006-10-31 192.168.223.100
5 3 link 2006-10-30 156.175.253.58

怎样写SQL语句?
各位高手,帮帮忙!

10 回复
#2
lian80882006-11-01 15:02

没人帮我?

#3
潇洒老乌龟2006-11-01 15:44
select * from tb a ,
(select userid , min(id) from tb group by userid) b
where a.id = b.id
#4
bygg2006-11-01 20:58

用 distinct 也可以

#5
miaobing20082006-11-02 15:14

支持,一個DISTINCT 就足夠了

#6
潇洒老乌龟2006-11-02 15:55
瞎扯,distinct不行.
#7
hanbingchong2006-11-02 21:37

用distinct不行
“select * from tb a ,
(select userid , min(id) from tb group by userid) b
where a.id = b.id”我用了一下,不太明白,请版主再给指点一下

#8
miaobing20082006-11-03 11:06
呵呵,昨天看錯了
distinct確實不行
“select * from tb a ,
(select userid , min(id) from tb group by userid) b
where a.id = b.id 應該可以;不過不用min(id),ID就可以了
意思是:從原來的Table中把userid和ID查出來當作一個Table,
然後將這個Table和原來的Table等值聯結
是可以得到要求的結果

#9
lian80882006-11-04 10:23

谢谢了!

#10
潇洒老乌龟2006-11-04 11:23
又瞎扯,他是取每个UserID的最小ID,必须min()
#11
bygg2006-11-04 14:00
以下是引用潇洒老乌龟在2006-11-4 11:23:38的发言:
又瞎扯,他是取每个UserID的最小ID,必须min()

难道不可用 top 吗?
按照 id 排序(倒序),再取第一个这是不是最小的???

1