| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1138 人关注过本帖
标题:求一条sql语句,两表合并,只取右表按时间排序第一条
只看楼主 加入收藏
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
 问题点数:0 回复次数:8 
求一条sql语句,两表合并,只取右表按时间排序第一条
a表:aid   内容     
       1      gg
       2      hh

 b表  bid    aid        时间           内容
      1        1         2010           hh
      2        1         2011           kk
      3        1         2013           jj


选择b.aid=a.aid,可得到三条记录,这个我会写。

现在我要求按时间降序,b表只取第一列,这个不会,请帮助,谢谢!

[ 本帖最后由 nhhykly9d 于 2014-3-11 11:41 编辑 ]
搜索更多相关主题的帖子: sql语句 2011 记录 
2014-03-10 21:16
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
得分:0 
自已回答了:SELECT a.aid,a.内容,(SELECT TOP 1 b.内容 FROM b WHERE b.aid = a.aid ORDER BY b.时间 DESC)AS time
FROM a


[ 本帖最后由 nhhykly9d 于 2014-3-10 23:12 编辑 ]
2014-03-10 23:10
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
得分:0 
上面只能得到aid,a.内容,b.内容d三个字
现在我想得到
a.aid,a.内容,b.内容,b.时间,这又怎样写呢,
条件是取b,以时间降序,只取一行
2014-03-11 10:16
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 
select top 1 a.aid,a.内容,b.内容,b.时间 from a join b on a.aid = b.aid order by b.时间 desc

大家都是朋友,有空就来坐坐!
2014-03-11 11:04
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
得分:0 
谢谢volte回答。我测试了 ,你给这个只能返回a表中一行,我要的是能返回a表中所有行,并且只返回b表中b.aid =a.aid 按时间降序的第一行,
请各位师兄再看看

[ 本帖最后由 nhhykly9d 于 2014-3-11 11:46 编辑 ]
2014-03-11 11:32
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
得分:0 
想做的项目由另外方法做了,结帖了。
2014-03-13 10:00
nhhykly9d
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2008-1-4
收藏
得分:0 
以下是我的最后做出来的结果:向各位师兄汇报一下

SELECT Dpost_2.postID, (SELECT TOP (1) 修改时间 FROM Drepost WHERE (postID = Dpost_2.postID) ORDER BY 修改时间 DESC) AS retime, (SELECT TOP (1) UserName FROM Drepost AS Drepost_1 WHERE (postID = Dpost_2.postID) ORDER BY 修改时间 DESC) AS rename, Dpost_1.创建时间, Dpost_1.题目, Dpost_1.UserName, Dpost_1.readnum, Dpost_1.postID AS Expr1, (SELECT COUNT(postID) AS Expr1 FROM Drepost AS Drepost_2 GROUP BY postID HAVING (postID = Dpost_2.postID)) AS postnum FROM Dpost AS Dpost_2 INNER JOIN Dpost AS Dpost_1 ON Dpost_2.postID = Dpost_1.postID WHERE (Dpost_2.版块ID = @版块ID) ORDER BY Dpost_1.创建时间 DESC
2014-03-16 23:08
白岳皓
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-4-10
收藏
得分:0 
2014-04-14 11:01
唐子爵
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-10-14
收藏
得分:0 
你这个select top 1 ...不就是只显示前面一行而已吗?所以就只显示第一行的数据
2014-05-16 12:25
快速回复:求一条sql语句,两表合并,只取右表按时间排序第一条
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021023 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved