簡體   English   中英

加入查詢計數

[英]joining a count on a query

我有2個表:評論和博客

博客有以下字段:id(唯一鍵),標題,作者,正文,日期,img,imgdes,標簽

評論:密鑰(唯一密鑰),postid(與博客的ID相關),名稱,電子郵件,日期,消息

我試圖顯示我的所有博客文章和每篇文章的評論數量。

所以我試圖“計數(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));?>

我確定這是一個簡單的加入,但我不知道謝謝!

使用此查詢它可能適合您

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

如果你想要所有博客文章,那么它應該在左連接的左側。

我認為問題出在你寫的地方: FROM comments a LEFT JOIN blog c ON c.id = a.postid GROUP BY c.id order by id DESC"

comments ablog c似乎不是正確的參考。

應該是FROM comments.a LEFT JOIN blog.c ON ...?

您是否想要計算每個博客中的評論數量? 如果是,則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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM