2017-12-06 11 views
1

2 개의 테이블이있는 블로그가 있습니다. 먼저 posts 키가있는 테이블 category_idcategories 테이블. 한 페이지에서 모든 카테고리에 게시물 수를 표시하려고합니다. 이 쿼리를 작성했지만 문제가 있습니다. 게시물이없는 카테고리는 표시되지 않았습니다. 0 개의 게시물이있는 다른 단어 카테고리에서는 결과에 나타나지 않았습니다.laravel에서 제대로 작동하지 않아 그룹에 가입하고 그룹화하십시오.

그리고 당신은 laravel에 설득력 시스템에

SELECT categories.* , Count(posts.total) as total 
FROM categories 
LEFT JOIN 
(
    SELECT * , COUNT(*) as total from posts GROUP By posts.id 
) as posts 
ON posts.category_id = categories.id 
+1

정확히 당신이하지 때 외부'COUNT' 할 것으로 예상 할 무엇 바깥 쪽 'GROUP BY'가 있습니까? 또한 집계 함수 (예 :'COUNT')이거나'GROUP에 나열된 열만 선택하는 SQL 표준을 따를 수 있도록'*'대신 명시 적으로 열을 선택하는 습관을 가져야합니다 BY'. –

답변

0

보십시오 다음 쿼리를이 작성하는 데 도움이 될 수 있습니다 :

SELECT categories.* , IFNULL(Count(posts.id),0) as total 
FROM categories 
LEFT JOIN 
posts 
ON posts.category_id = categories.id 
Group by categories.id; 
+0

아니요, 불행히도 작동하지 않습니다 –

+0

편집 된 검색어를 사용해주세요 –

+0

예, 감사합니다. –