请教个关联表查询的sql语句

brull 2006-04-05 06:44:23
a表:ID,Title,Author
b表:RID,Author,PTime
现在要求是,取a表所有的记录和b表中RID=ID的相应的第一条记录(B表中RID=ID的记录可能有多条)。说白了,a表就是放发表的帖子的表,b表放回复帖子的表,他们两个之间用帖子ID相关联。现在想取b表的记录就是想读取帖子的最后回复人和最后回复时间
自己写了个,有错
select a.*,(select top 1 b.* from b where a.ID=b.RID order by b.PTime desc) from a
网上search的两天也找不到答案,郁闷ing...
这里先谢谢各位朋友的光临!能解决问题就发分
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
changechange 2006-04-06
  • 打赏
  • 举报
回复
DFIRST
changechange 2006-04-06
  • 打赏
  • 举报
回复
在 ACCESS 中要学会用域函数

比如 DMAX DLOOKUP
wwwwb 2006-04-06
  • 打赏
  • 举报
回复
什么错误?
将表及要求结果贴出来看看
brull 2006-04-06
  • 打赏
  • 举报
回复
楼上理解有点错误了
现在需要的是a中所有帖子的记录和b中每个帖子的最后回复人和回复时间
我现在将数据库改了下,将a加两个字段用于存放最后回复人和回复时间,每次有人回复的时候就更新它们
笨办法。。。。
wwwwb 2006-04-06
  • 打赏
  • 举报
回复
是否是取最新时间?
select * from a
where PTime=(select top 1 PTime from b where a.ID=b.RID order by b.PTime desc)

djkhym 2006-04-06
  • 打赏
  • 举报
回复
a表:ID,Title,Author
b表:RID,Author,PTime
select a.id,a.title,a,author from a表,(select distinct rid,author from b表 order by ptime desc) b
where a.id=b.rid
当然,如果需要取a表的所有记录,则最好使用左连接最好

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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