sql两表两表关联查询语句

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:00:33
一个是新闻表,一个是新闻评论表
两个表用新闻id关连
我想提评论最多的10条新闻

新闻表news:id,新闻标题(title),内容(content),加入时间(date)
评论表T_comment:id,新闻id(newsid),评论标题(title),评论内容(body)

select top 10 * from news where id in ( select newsid from T_comment order by count(newid) desc)

这个应该没有错啊
但就是提不出来
提示脚本超时。
请高手帮忙
不排序怎么知道评论最多呢?

in的效率是很低的,所以脚本会超时
可以这么写
select a.*
from news a,(select top 10 newsid from T_comment group by newsid order by count(*) desc) b
where a.id=b.newsid

select newsid form T_comment group by newid order by count(newid) desc
应该先按newid分组之后 在排序吧

"order by count(newid) desc"这个用不找吧,子查询里没必要排序?

select top 10 * from news where id in ( select newsid from T_comment )

就这么写试试吧

select * from news where id in ( select top 10 newsid from T_comment order by count(newid) desc)
这样试试呢?