2012-07-23 6 views
0

에 카운트 가입 ID (고유 키), 제목, 저자, 신체, 날짜, IMG, imgdes을, 태그를내가 2 개 테이블이 쿼리

댓글 : 키 (고유 키), postid (블로그 ID와 관련 있음), 이름, 이메일, 날짜, 메시지

모든 블로그 게시물과 모든 게시물의 댓글 수를 표시하려고합니다.

그래서

나는 일을 뭔가있어하지만 작업을 못해 1 개 코멘트를 가진 기반으로 "(postid) 여기서 postid = ID를 계산"하려고 메신저하지만이 그것입니다 : 다시

SELECT a.postid,c.author,c.title, c.id,c.body,c.date,c.pic, c.tags, c.imgdesc, 
COUNT(*) AS num_comments FROM comments a LEFT JOIN blog c ON c.id = a.postid 
GROUP BY c.id order by id DESC" 

이것은 모든 것이 주석을 달고 나는 왜 얻을 수 있지만 내가 원하는 것을 구현하는 방법을 이해할 수 없을 때만 작동합니다.

$sql="***(help 1 of 2) what to set the query to****" 
$query = mysql_query($sql) or die(mysql_error()); 
    <?php do{ ?> 
    <html stuff here> 
    <?php echo $blog['title']?><br> 
    <?php echo $blog['*******(help 2 of 2) # of comments display here******'] 
    <?php } while($blog = mysql_fetch_assoc($sql));?> 

메신저 확인이 쉬운이 조인하지만 난 단서 덕분이 없습니다 :

내가 가지고 거기에 모든 것을 넣어하세요!

답변

1

사용이 쿼리는 수도 작동합니다.

+0

마음을 설명 하시겠습니까? 내가 질문을 읽어 주신 덕분에 작동합니다. –

+0

읽기 작업은 mysql에서 작동하므로 이해할 수 있습니다. 또한 작동하는 경우 anv를 upvote로 평가했습니다. :). 링크를 uch 가지고 –

+0

롤! –

0

나는 문제가 당신이 쓰는 곳에있다 생각 : FROM comments a LEFT JOIN blog c ON c.id = a.postid GROUP BY c.id order by id DESC"

comments a

blog c 올바른 참조가 될 것 같지 않습니다.

해야할까요 FROM comments.a LEFT JOIN blog.c ON ...? 당신은 모든 블로그 게시물은 다음 조인 왼쪽의 왼쪽에 있어야 원하는 경우

SELECT a.postid,c.author,c.title, c.id,c.body,c.date,c.pic, c.tags, c.imgdesc, COUNT(a.key) AS num_comments FROM blog c left outer join comments a ON a.postid = c.id GROUP BY c.id order by id DESC 
+0

없음이 쿼리는 너무 가정 임 노력으로 작동 블로그와 같은 postidid를 계산할 수있는 새로운 쿼리를 작성하십시오.이 번호를 테이블에 추가하려면 –

1

에 대한

+0

내가 그것을 옮겨서 계산을하는 방법에 대한 조인의 예는 매우 나쁩니 까? –

+0

"나는 일할 무언가를 얻었지만 작동하지 않는 1 개의 주석을 가지고있다." 주석 테이블이 왼쪽 조인의 오른쪽에 있었으므로이 문제가 발생했습니다. 왼쪽 조인은 다음과 같이 작동합니다. 왼쪽 테이블의 각 레코드를 오른쪽 테이블의 일치하는 레코드와 매핑하고 일치하는 레코드가없는 레코드를 왼쪽 테이블에 계속 표시합니다. 왼쪽에 주석 표가있는 경우 블로그에 주석이 없더라도 여전히 0으로 표시된 채로 표시됩니다 – arunmoezhi

0

각 블로그의 댓글 수를 계산 하시겠습니까? 예 다음, SELECT c.postid,count(key) as num_of_comments FROM blog b, comments c WHERE b.id = c.postid GROUP BY c.postid

또 다른 쉬운 방법 아웃 경우 : 당신이 외부 키로 postid을 가지고 , 당신은 단지 의견 테이블에서 결과를 얻을 수 있습니다 SELECT postid,count(key) as num_of_comments FROM comments GROUP BY postid