下面是这个query语句中包含的3个表
一篇文章有多个评级,我们想要计数与文章itselfs有关的所有信息的评级。
这就是我所拥有的:
SELECT p.*, Count(r.PostId)
FROM Posts p INNER JOIN
Rating r
on p.RatingId = r.PostId然后我得到了这个错误:
Msg 8120、级别16、状态1、第1列'Posts.Id‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
但是我不想使用组by,我想返回文章信息以及该文章评等计数的一列。
谢谢!
发布于 2015-12-28 15:06:59
可能最简单的方法是使用子查询来完成您想要的事情:
SELECT p.*,
(SELECT Count(r.PostId)
FROM rating r
WHERE p.RatingId = r.PostId
)
FROM Posts p ;您的查询有一个问题,因为它使用了聚合函数COUNT()和其他列(p.*),并且没有GROUP BY子句。
而且,您的JOIN状态看起来非常奇怪。我希望p.PostId = r.PostId或p.Id = r.PostId。
https://stackoverflow.com/questions/34495852
复制相似问题