sql查询去除重复用户数据

wihtsky 2008-10-09 03:59:17
2个表联表
a表 UserId lemmaid lemmaOil date b表 UserId userHead
aa 1 1 时间 aa a.gif
aa 1 2 bb b.gif
bb 2 1 vv c.gif
vv 1 1
bb 1 1
bb 1 2

我要打出
aa 1 1 时间 a.gif
bb 1 2 时间 b.gif
vv 1 1 时间 c.gif
主要就是过滤重复用户记录 只保留一条
条件按 lemmaOil和date的倒序排序 lemmaid = 1
...全文
311 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
P2MH 2009-01-21
  • 打赏
  • 举报
回复
学习
P2MH 2009-01-21
  • 打赏
  • 举报
回复
学习
等不到来世 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wihtsky 的回复:]
保留lemmaOil多的
[/Quote]

aa 1 1 时间 a.gif
bb 1 2 时间 b.gif
vv 1 1 时间 c.gif

既然如此,红色处为什么不是2?
wihtsky 2008-10-09
  • 打赏
  • 举报
回复
保留lemmaOil多的
lxuan_025 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pt1314917 的回复:]
SQL code
select b.userid,a.lemmaid,a.lemmaoil,a.date,b.userhead
from b left join a
on a.userid=b.userid and not exists(select 1 from a t where a.userid=t.userid and t.date>a.date)
where a.lemmaid=1
[/Quote]


帮顶
等不到来世 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 wihtsky 的帖子:]
2个表联表

我要打出
aa 1 1 时间 a.gif
bb 1 2 时间 b.gif
vv 1 1 时间 c.gif
主要就是过滤重复用户记录 只保留一条
条件按 lemmaOil和date的倒序排序 lemmaid = 1 [/Quote]
保留哪一条?
仙道彰 2008-10-09
  • 打赏
  • 举报
回复
select b.userid,a.lemmaid,a.lemmaoil,a.shijian,b.userhead
from b left join a
on a.userid=b.userid and not exists(select 1 from a t where a.userid=t.userid and t.shijian>a.shijian)
where a.lemmaid=1 order by lemmaOil,shijian desc

userid lemmaid lemmaoil shijian userhead
-------------------------------------------------- -------------------- ----------- ------------------------------------------------------ --------------------------------------------------
vv 1 1 2008-04-09 00:00:00.000 c.gif
bb 1 2 2008-06-09 00:00:00.000 b.gif
aa 1 2 2008-02-09 00:00:00.000 a.gif

(所影响的行数为 3 行)


仙道彰 2008-10-09
  • 打赏
  • 举报
回复


select b.userid,a.lemmaid,a.lemmaoil,a.shijian,b.userhead
from b left join a
on a.userid=b.userid and not exists(select 1 from a t where a.userid=t.userid and t.shijian>a.shijian)
where a.lemmaid=1 order by lemmaOil desc

userid lemmaid lemmaoil shijian userhead
-------------------------------------------------- -------------------- ----------- ------------------------------------------------------ --------------------------------------------------
aa 1 2 2008-02-09 00:00:00.000 a.gif
bb 1 2 2008-06-09 00:00:00.000 b.gif
vv 1 1 2008-04-09 00:00:00.000 c.gif

(所影响的行数为 3 行)

仙道彰 2008-10-09
  • 打赏
  • 举报
回复
select b.userid,a.lemmaid,a.lemmaoil,a.shijian,b.userhead
from b left join a
on a.userid=b.userid and not exists(select 1 from a t where a.userid=t.userid and t.shijian>a.shijian)
where a.lemmaid=1 order by lemmaOil desc



lemmaOil和date的倒序排序不太明白,应该冲突了吧?
wihtsky 2008-10-09
  • 打赏
  • 举报
回复
看不明白。。。
水族杰纶 2008-10-09
  • 打赏
  • 举报
回复
select t.*,b.userHead from 
select * from ta a where not exists(select 1 from ta where UserId = a.UserId and lemmaid<a.lemmaid and lemmaOil>a.lemmaOil ) t inner join tb b on a.UserId =b.UserId
pt1314917 2008-10-09
  • 打赏
  • 举报
回复

select b.userid,a.lemmaid,a.lemmaoil,a.date,b.userhead
from b left join a
on a.userid=b.userid and not exists(select 1 from a t where a.userid=t.userid and t.date>a.date)
where a.lemmaid=1

34,571

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧