合并查询后排序的问题

panyuan911 2010-03-18 10:08:20
有两张表,我想把它们查出的结果放到一起,然后再按时间进行排序,最后取前10项,怎末做?
这是查询语句
SELECT PostsId AS id, PostsTitle AS Title,PostsDate AS SendDate, 1 AS Type
FROM BbsPosts
WHERE (PostsUserId = 'admin' AND IsDeleted=False )
UNION ALL
SELECT ReplyId AS id, ReplyTitle AS Title,ReplyDate as SendDate, 2 AS type
FROM BbsReply
WHERE (ReplyUserId = 'admin' AND IsDeleted=False )
可以吧需要的结果都查出来,然后怎么排序和取前10行?
表结构是:
BbsPosts:
PostsId PostsTitle PostsDate ....
---------------------------------
和表
BbsReply:
ReplyId ReplyTitle ReplyDate ....
---------------------------------

想要的结构是:
id Title SendDate Type
-----------------------
只要时间最靠后的10项
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
panyuan911 2010-03-19
  • 打赏
  • 举报
回复
解决了
WWWWA 2010-03-19
  • 打赏
  • 举报
回复
如果是按 SendDate 排序
select top 10 * from (
SELECT PostsId AS id, PostsTitle AS Title,PostsDate AS SendDate, 1 AS Type
FROM BbsPosts
WHERE (PostsUserId = 'admin' AND IsDeleted=False )
UNION ALL
SELECT ReplyId AS id, ReplyTitle AS Title,ReplyDate as SendDate, 2 AS type
FROM BbsReply
WHERE (ReplyUserId = 'admin' AND IsDeleted=False ) )
order by SendDate desc
ACMAIN_CHM 2010-03-18
  • 打赏
  • 举报
回复
select top 10 * from (
SELECT PostsId AS id, PostsTitle AS Title,PostsDate AS SendDate, 1 AS Type
FROM BbsPosts
WHERE (PostsUserId = 'admin' AND IsDeleted=False )
UNION ALL
SELECT ReplyId AS id, ReplyTitle AS Title,ReplyDate as SendDate, 2 AS type
FROM BbsReply
WHERE (ReplyUserId = 'admin' AND IsDeleted=False )
)
order by SendDate desc

7,712

社区成员

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

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