喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: 一对多查询  
 
sunfall
新手上路
Rank: 1



UID 98278
精华 0
积分 23
帖子 21
金钱 23 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-9-9
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
一对多查询

一个用户表,一个用户登录记录表,
两者以用户ID关联,有没有可能一条语句列出多个用户信息和他们最近三次登录记录呢.
2007-10-24 08:39 PM#1
查看资料  发短消息  顶部
 
seakingx
金牌会员
Rank: 6Rank: 6


UID 75142
精华 0
积分 1248
帖子 801
金钱 663 喜悦币
威望 0
人脉 585
阅读权限 70
注册 2006-6-18
来自 海口
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
有可能, 我知道一种方法, 但效率很低  , 比如用户表是 U(ID, ... )  , 登录记录表是 L (ID,UID , ... )  , 两个表的ID都是自动增加的
查询 A   得到用户登录的 最后一个记录
select max(id) id , UID from U group by UID
查询 B 得到用户登录的 除去 倒数第二个记录
select max(id) id , UID from (
select id , UID from U  where not exists (select * from (select max(id) id , UID from U group by UID ) A where A.id = U.id )
) T group by UID

类似, 得到  C  倒数第3个记录

然后  ABC union
再和 U 做 联合查询, 估计写个10来行吧 :)




锐升科技
2007-10-24 09:57 PM#2
查看资料  Blog  发短消息  QQ  顶部
 
sunfall
新手上路
Rank: 1



UID 98278
精华 0
积分 23
帖子 21
金钱 23 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-9-9
状态 离线
[推荐阅读] Hadoop-- 海量文件的分布式计算处理方案
谢谢seakingx的回答,我现在暂时用php重复查询,一个页面要查几十次效率也很低.
2007-10-25 08:44 AM#3
查看资料  发短消息  顶部
 
seakingx
金牌会员
Rank: 6Rank: 6


UID 75142
精华 0
积分 1248
帖子 801
金钱 663 喜悦币
威望 0
人脉 585
阅读权限 70
注册 2006-6-18
来自 海口
状态 离线
[推荐阅读] 遇到一个面试题
你要是有空,就导出些测试数据(大概3个用户, 20条数据),我试着写一下,看效率如何。



锐升科技
2007-10-25 09:15 PM#4
查看资料  Blog  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.021530 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP