2012-01-17 6 views
1

MySQL의 테이블 내가 그 폴더 (documents.folder_id = 폴더 관련이 얼마나 많은 파일의 폴더 목록 수를 검색하려면, 폴더에있는 파일 수의 계산 필요 .ID) 내가 두 테이블 <pre><code>documents: id, folder_id folders: id, title </code></pre> <p></p>이

나는이

select 
f.title, count(d.id) as file_count 
from 
folders f 
left join 
documents d on f.id = d.folder_id 

을 시도하지만 문서 만 테이블에있는 행의 총 수와 함께, 하나 개의 행을 반환

답변

2

GROUP BY 절이 누락되어 f.title에 대한 행을 반환합니다.

select 
f.title, count(d.id) as file_count 
from 
folders f 
left join 
documents d on f.id = d.folder_id 
GROUP BY f.title 

위의 내용은 빈 폴더를 생략합니다. 당신이 빈 폴더에 대한 제로 카운트를 원하는 경우, 대신 COUNT(d.*)를 사용

select 
f.title, count(d.*) as file_count 
from 
folders f 
left join 
documents d on f.id = d.folder_id 
GROUP BY f.title 
1
SELECT F.id, F.title, COUNT(D.*) 
FROM folders AS F 
    LEFT OUTER JOIN documents AS D ON D.folder_id = F.id 
GROUP BY F.id; 
관련 문제