sql语句 实现两个表查询显示,有一个聚合函数count()

我有一个news表和一个comment表,我想查询news的所有内容和每条new的评论总数,该怎么写?我是用newid连接两个表的"selecttop10n.newId,... 我有一个news表和一个comment表,我想查询news的所有内容和每条new的评论总数,该怎么写?我是用newid连接两个表的

"select top 10 n.newId,count(c.*) from new as n join comment as c on c.newId=n.newId where n.newId=@id group by n.newId order by count(c.*) desc";

这样貌似不对
展开
 我来答
wzsjzjjxy
推荐于2018-05-13 · TA获得超过3258个赞
知道大有可为答主
回答量:4175
采纳率:0%
帮助的人:1804万
展开全部
首先这个应该是外连接查询。你知道你错在何处吗?你要查询所有的news,为什么还要限定n.newsid=@ID,你这样查询的只有一条记录了。
select top 10 n.newid,count(c.*) from new as n left jion conmment as c
on n.newid=c.newid group by n.newid order by count(c.*) desc
百度网友36f922b
2010-05-08 · TA获得超过248个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:186万
展开全部
这个我们首先可以对2张表按newsid进行连接,
然后按new进行分组计数即可。

select n.newId, count(c.*)
from new as n
left join comment as c on c.newId = n.newId
group by n.newId
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友07f2face2
2010-05-08 · TA获得超过283个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:138万
展开全部
select top 10 n.*,d.p from new n, (select count(*) as p,newId from comment group by newId) d where n.newId=@id and n.newId = d.newId order by d.p desc
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
271503810
2010-05-08
知道答主
回答量:30
采纳率:0%
帮助的人:15万
展开全部
select n.newId, count(c.*)
from new as n
left join comment as c on c.newId = n.newId
group by n.newId
order by count(c.*) desc

应该没问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e3265660b22
2019-05-16 · TA获得超过3761个赞
知道大有可为答主
回答量:3073
采纳率:33%
帮助的人:240万
展开全部
select
News.*
,C.Num
from
News
AS N
inner
join
(
select
NewID,count(*)
AS
Num
from
comment group
by
NewID
)
AS
C
on
N.ID=C.NewIDorder
by
C.Num
DESC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式