1

写真のギャラリーと、各写真が何回評価されたかを表示したいと思います。

これが私の単純なクエリですが、評価テーブルからカウントを取得する方法がわかりません。

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

誰かが星評価ボタンをクリックするたびに、新しいレコードが評価テーブルに挿入されます。写真の評価は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 に答える