1

我想显示照片库以及每张照片的评分次数。

这是我的简单查询,但不确定如何从 Ratings 表中获取计数。

SELECT
   Photo.photoID
  ,Photo.photoName
  ,Member.memberID
  ,Member.memberFName
  ,Rating.ratingID
FROM
  Photo
INNER JOIN Member ON Photo.memberID = Member.memberID
LEFT OUTER JOIN Rating ON Photo.photoID = Rating.photoID
ORDER BY Photo.photoID DESC

每次有人单击 Star Rating 按钮时,都会在 Rating 表中插入一条新记录。我只允许对一张照片进行 100 次评分,因此我想在用户浏览图库时显示一张照片的评分次数(即 57/100)。

感谢你的帮助!

4

2 回答 2

1
select p.photoID,
    p.photoName,
    m.memberID,
    m.memberFName,
    coalesce(rc.Count, 0) as RatingCount
from Photo p
inner join Member m on p.memberID = m.memberID
left outer join (
    select photoID, count(*) as Count
    from Rating
    group by photoID
) rc on p.photoID = rc.photoID
order by p.photoID desc
于 2012-07-05T20:12:42.577 回答
0

您可以将 count 函数与 group by 语句一起使用来获取评分计数。

select p.photoID,
p.photoName,
m.memberID,
m.memberFName,
count(r.RatingID) as RatingCount
from Photo p
inner join Member m on p.memberID = m.memberID
left outer join Rating r on p.photoID = r.photoID
group by p.photoID, p.photoName, m.memberID, m.memberFName
于 2012-07-05T20:33:37.123 回答