【散50分求一SQL语句】【双表联查】【闪电结贴】

0轰隆隆0 2007-06-08 04:30:19
A 表(新闻表):[编号,标题,内容]
B 表(评论表):[编号,PID,内容,时间] 注:PID 对应A表的编号

现求最新评论新闻,按评论时间降序排列
...全文
293 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
0轰隆隆0 2007-06-09
  • 打赏
  • 举报
回复


分不够了,大家就将就一点,嘿嘿!
wgzaaa 2007-06-08
  • 打赏
  • 举报
回复
select a.* from (select top 10 pid,max(时间)时间0 from b group by pid order by 时间0 desc)aa
left join a on aa.pid=a.编号 order by aa.时间0 DESC
就忘了desc,不行吗?
select top 10 pid,max(时间)时间0 from b group by pid order by 时间0 desc
是不同新闻评论取最大时间,降序后取前10条
left join a on aa.pid=a.编号
然后去找新闻表(按编号)找到后按评论时间降序order by aa.时间0 DESC
小谷儿 2007-06-08
  • 打赏
  • 举报
回复
扩展 Yang_(扬帆破浪) 的SQL
小谷儿 2007-06-08
  • 打赏
  • 举报
回复
create table a --新闻表
(
PID char(6) not null PRIMARY KEY, --编号
Title varchar(50) , --标题
Content varchar(100) --内容
)

create table b --评论表
(
IID char(6) not null PRIMARY KEY, --编号
PID char(6), --PID
Content varchar(100), --内容
PTime datetime --时间
)


insert into a
select '060801','IT新型工程','据国外媒体报道.......'
union all
select '060802','内幕调查','《世界新闻报》记者在网站上....'
union all
select '060803','CSDN专访 ',' 波折路上的坚持行进者...'
union all
select '060804','我们为什么要睡眠?','我们为什么要睡眠?........'


insert into b
select 'P60808','060802','评:内幕调查','2007-06-08 11:00:00'
union all
select 'P60802','060801','评:IT新型工程','2007-06-08 07:00:00'
union all
select 'P30909','060804','评:我们为什么要睡眠','2007-03-09 11:21:00'
union all
select 'P60809', '060801','再评:IT新型工程','2007-06-08 17:00:00'


select * from a
where pid in(select PID from b )
order by (select max(ptime) from b where b.pid=a.pid) desc


drop table a
drop table b
0轰隆隆0 2007-06-08
  • 打赏
  • 举报
回复
好像都不对

要找的是最新的被评论的新闻

检索出来的新闻不要重复,并按评论表的时间降序排列
fa_ge 2007-06-08
  • 打赏
  • 举报
回复
接點分
y_dong119 2007-06-08
  • 打赏
  • 举报
回复
闪电接分,楼主就给点吧@@@@@@@@@
fwacky 2007-06-08
  • 打赏
  • 举报
回复


select a.编号,a.标题,a.内容,bb.时间 from a, (select distinct top 10 pid,时间 from b order by 时间 desc) bb
where a.编号 = bb.pid
wgzaaa 2007-06-08
  • 打赏
  • 举报
回复
更正:取10条
select a.* from (select top 10 pid,max(时间)时间0 from b group by pid order by 时间0 desc)aa
left join a on aa.pid=a.编号 order by aa.时间0
半截烟头 2007-06-08
  • 打赏
  • 举报
回复

select a.编号,a.标题,a.内容,b.时间 from A a
left outer join B b
on a.编号=b.PID
order by b.时间 desc
wgzaaa 2007-06-08
  • 打赏
  • 举报
回复
select a.* from (select distinct top 10 pid,时间 from b order by 时间 desc)aa left join a on aa.pid=a.编号
肥胖的柠檬 2007-06-08
  • 打赏
  • 举报
回复
select a.* from A,(select max(时间) 时间,PID from B group by 编号) b where a.编号=b.PID order by b.时间 desc --PID 对应A表的编号,改一下
w75251455 2007-06-08
  • 打赏
  • 举报
回复
闪电回复~~哈哈
nolast02 2007-06-08
  • 打赏
  • 举报
回复
select A.标题,A.内容
from A inner join B ON A.编号=B.PID
ORDER BY B.时间
肥胖的柠檬 2007-06-08
  • 打赏
  • 举报
回复

select a.* from A,(select max(时间) 时间,编号 from B group by 编号) b where a.编号=b.编号 order by b.时间 desc
McGregorWang 2007-06-08
  • 打赏
  • 举报
回复
select top 1 A.标题,B.时间
from A,B
where A.编号 = B.PID
order by B.时间 desc
Yang_ 2007-06-08
  • 打赏
  • 举报
回复
select *
from a
order by (select max(时间) from b where b.pid=a.编号) desc

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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