2012-07-05 3 views
1

사진 갤러리와 각 사진의 평가 횟수를 표시하고 싶습니다.선택 내에서의 SQL 수

여기 내 간단한 쿼리가 있지만 등급 테이블에서 Count를 얻는 방법을 모르겠습니다.

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)를 표시하고 싶습니다.

감사합니다.

답변

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 
+0

둘 다 감사합니다! COALESCE - 저에게는 새로운 것입니다! – user1505054

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