读取用户列表的时候,同时读出该用户最新发布的一个帖子。

tim8 2011-02-22 06:20:24
读取用户列表的时候,同时读出该用户最新发布的一个帖子。

怎么写这语句?

表1:Dx_User (用户表)

ID
UserName'帐号
RealName'姓名

表2:Dx_BBS (帖子表)

ID
UserID'用户ID
Title'帖子标题

我在把用户列出来的时候,想知道用户最新发布的帖子,怎么写呢?

我用 inner join left join,但帖子有很多条的时候,用户名就会重复很多次
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
快溜 2011-02-22
  • 打赏
  • 举报
回复

select *,
帖子=(select top 1 Title from Dx_BBS where UserID=a.UserID order by id desc)
from Dx_User a
快溜 2011-02-22
  • 打赏
  • 举报
回复
 
select *,
帖子=(select top 1 Title from Dx_BBS where UserID=a.UserID' order by id desc)
from Dx_User a
tim8 2011-02-22
  • 打赏
  • 举报
回复
最新帖子应该是根据ID来判断,ID越大越新。
还有,我的数据库是 SQL 2000
dawugui 2011-02-22
  • 打赏
  • 举报
回复
你少个时间字段,如何区分先后?
中国风 2011-02-22
  • 打赏
  • 举报
回复
select *
from Dx_Use as a
inner join Dx_BBS as b on b.UserID=a.UserID
where not exists(select 1 from Dx_BBS where UserID=b.UserID and ID>b.ID)
唐诗三百首 2011-02-22
  • 打赏
  • 举报
回复
表2:Dx_BBS (帖子表)应该有个"发表时间"吧? 怎么没看到?
中国风 2011-02-22
  • 打赏
  • 举报
回复
select * 
from Dx_User as a cross apply(select top 1 * from Dx_BBS where UserID=a.UserID order by ID desc) as b
star95hmz 2011-02-22
  • 打赏
  • 举报
回复
可不可以根据时间来排啊,你可以设置一个时间的参数看看

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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