이 세 개의 테이블이 있습니다에 가입하세요. 카운트 AS SELECT posts.title, posts.num, posts.status, posts.category, posts.content, posts.member_num, COUNT (posts_replies.blyrb_num)이 쿼리 반환는 SQL 쿼리 INNER는 세 개의 테이블
FROM posts_replies
INNER JOIN posts ON (posts_replies.blyrb_num = posts.num)
WHERE posts.status =1
AND posts.access = 'Public'
GROUP BY posts.num
ORDER BY count DESC
LIMIT 50
기록은 47
그리고 이것은 게시물에 대한 각 Reply의 Likes Count를 가져오고 싶다는 약간의 업데이트 된 쿼리입니다.
SELECT posts.title, posts.num, posts.status, posts.category, posts.content, posts.member_num,
COUNT(posts_replies.blyrb_num) AS count,
COUNT(likes.comment_num ) AS likes_count
FROM posts_replies
INNER JOIN posts ON (posts_replies.blyrb_num = posts.num)
INNER JOIN likes ON (likes.comment_num = posts_replies.num)
WHERE posts.status =1
AND posts.access = 'Public'
GROUP BY posts.num
ORDER BY count DESC
LIMIT 50
이 쿼리는 Likes Count를 반환하지만 Likes가없는 레코드는 포함하지 않습니다. 그래서이 쿼리가 반환하는 레코드는 다음과 같습니다. 40
0 개의 좋아하는 항목이 있더라도 각 답글의 Likes Count를 포함하고 싶습니다.
어떤 도움이 필요합니까?
는LEFT JOIN
의 생각은 아무도 오른쪽에 일치하지 수있는 경우에도 행과 일치하는 것입니다 여기
SELECT posts.title, posts.num, posts.status, posts.category,
posts.content,posts.member_num,
COUNT(posts_replies.blyrb_num) AS count,
COUNT(likes.comment_num ) AS likes_count
FROM posts_replies
INNER JOIN posts ON (posts_replies.blyrb_num = posts.num)
LEFT JOIN likes ON (likes.comment_num = posts_replies.num)
WHERE posts.status = 1
AND posts.access = 'Public'
GROUP BY posts.num
ORDER BY count DESC
LIMIT 50
당신을 도울 수 LEFT JOIN
대신 INNER JOIN
의 사용하면
왼쪽 내부 조인이 아닌 조인. 일치 여부를 원할 경우 –
일치하는 항목이없는 테이블의 행을 가져 오려면 null 레코드를 반환 할 테이블의 어느쪽에 따라 왼쪽 또는 오른쪽 조인이 필요합니다 . – steoleary
감사합니다 @ tony-hopkinson 및 steoleary, 여러분 맞습니다. –