0

私は2つのテーブルを持っています:コメントとブログ

ブログには次のフィールドがあります:id(一意のキー)、タイトル、作成者、本文、日付、img、imgdes、タグ

コメント:key(一意のキー)、postid(ブログのIDに関連)、名前、メールアドレス、日付、メッセージ

すべてのブログ投稿とすべての投稿のコメント数を表示しようとしています。

だから私は"count(postid)where postid=id"をしようとしています

私は何かがうまくいくようになりましたが、それはうまくいかない1つのコメントを持っていることに基づいていますが、これはそれです:

 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));?>

これは簡単な参加だと確信していますが、私には手がかりがありません!

4

4 に答える 4

1

このクエリを使用すると、うまくいく可能性があります

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
于 2012-07-23T04:57:06.640 に答える
1

すべてのブログ投稿が必要な場合は、左側の結合の左側に配置する必要があります。

于 2012-07-23T04:57:23.383 に答える
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...?

于 2012-07-23T04:56:42.907 に答える
0

各ブログのコメント数を数えようとしていますか?はいの場合、 SELECT c.postid,count(key) as num_of_comments FROM blog b, comments c WHERE b.id = c.postid GROUP BY c.postid

もう1つの簡単な方法:postidを外部キーとして使用しているため、コメントテーブルから結果を取得できます。 SELECT postid,count(key) as num_of_comments FROM comments GROUP BY postid

于 2012-07-23T05:10:51.783 に答える