2013-05-19 7 views
0

사용자는 게시물을 올릴 수 있으며이 게시물은 댓글을 가질 수 있으며이 모든 사용자 게시물의 댓글 수를 얻고 싶습니다.MYSQL 명세서에 COUNT 사용하기

게시판 표 :

ID | 내용 | 사진 | 좋아요 | 유쾌한 | USER_ID | TIMEPOST | YOUVIDEO |

설명회 :

ID | USERS_ID | POSTS_ID | 내용 | 시간 관리 |

$stmt = $mysqli->prepare("SELECT COUNT(comments.id) FROM comments INNER JOIN posts ON  
posts.id=comments.users_id WHERE posts.user_id=? "); 

$stmt->bind_param('i',$_SESSION['ID']); 
$stmt->execute(); 
$stmt->bind_result($comentarios); 
$stmt->fetch(); 
$_SESSION['comentarios']=$comentarios; 
+0

당신이 가입하고 어쩌면 때문에? 읽기 : http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – fancyPants

+0

왜 INNER-join입니까? 그냥 JOIN하지 않아야합니까? – bestprogrammerintheworld

+0

그래서 사용자가 만든 모든 게시물에 숫자로 된 댓글을 연결할 수 있습니다. mysqli 객체 지향 함수를 사용하기 때문에 나는 PDO로 태그를 붙였다. –

답변

4

난 당신이 코멘트를 테이블에 post_id 외래 키를 가지고, 가정합니다. 이 사용자의 게시물에 만든 코멘트를 얻고 싶은 경우에

,이 시도 :

SELECT 
    count(comments.id) 
FROM 
    comments 
INNER JOIN 
    `posts` 
ON 
    comments.post_id=posts.id 
AND 
    `posts`.user_id=? 
+0

이것은 JOIN이 카운트를 수행하는 데 필요하지 않으므로 가장 직접적인 방법처럼 보입니다. – tadman

+0

내 질문에 명확하지 않을 수도 있지만이 사용자 게시물에 대한 모든 의견을 원합니다. –

+0

@ChristopherCosta 그런 다음 plz 관련 질문을 향상 시키십시오. 관련 테이블 데이터와 구조를 보여주고 무엇을 얻고 싶습니까? – user4035