2011-10-14 4 views
0

테이블을 각 부서의 제목과 수를 반환해야합니다는 MySQL의에서

departments: id, title 

comments: id, year_code 

department_comments: comment_id, department_id 

가 나는 그것이 얼마나 많은 의견의 수와, 모든 부서의 제목을 나열합니다.

select 
d.title, count(c.id) as total_comments 
from 
departments d, comments c 
left join 
department_comments dc on c.id = dc.comment_id 
where 
c.year_code = 1011 

위의 쿼리의 라인을 따라

뭔가가 작동하지 않습니다,하지만 당신에게 내가 달성하기 위해 노력하고 있습니다 무엇의 아이디어를 줄 것이다.

d.title (count(c.id)) 
--------------------- 
Maintenance (10) 
Finance (5) 
Security (13) 

답변

4

당신은 가까웠다 :

내가 사용자에게 표시 할 것은 부서 제목 아래처럼 옆에 의견의 총 #입니다. 귀하의 JOIN 구문이 약간 떨어져 있고 GROUP BY가 누락되었습니다.

SELECT d.title, COUNT(dc.comment_id) AS total_comments 
    FROM departments d 
     LEFT JOIN department_commments dc 
      INNER JOIN comments c 
       ON dc.commment_id = c.id 
        AND c.year_code = 1011 
      ON d.id = dc.department_id 
    GROUP BY d.title 
관련 문제