如何在gridview中显示另一个表的计数?

时间:2012-07-20 00:27:04

标签: asp.net mysql

我为学校建立博客我想显示每个帖子的评论数量。但是我对如何实现这个目标有点失落任何帮助都会非常感谢你!

我有2张桌子

CREATE TABLE `blog_message` (
  `MessageID` int(30) NOT NULL AUTO_INCREMENT,
  `Username` varchar(45) NOT NULL,
  `Message` text,
  `AddedDate` datetime DEFAULT NULL,
  `Title` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`MessageID`)
)


CREATE TABLE `blog_comments` (
  `CommentID` int(30) NOT NULL AUTO_INCREMENT,
  `MessageID` int(30) DEFAULT NULL,
  `Author` varchar(45) DEFAULT NULL,
  `CommentMessage` text,
  `AddedDate` datetime DEFAULT NULL,
  PRIMARY KEY (`CommentID`),
  KEY `blog_comments_ibfk_1` (`MessageID`),
  CONSTRAINT `blog_comments_ibfk_1` FOREIGN KEY (`MessageID`) REFERENCES `blog_message` (`MessageID`)
)

我的目标是

在gridview中显示

以表格格式表示 评论数量|标题|用户名|创建日期

2 个答案:

答案 0 :(得分:1)

以下是MySQL语法,不确定您使用的是什么。但是这将返回一个列表MessageIds以及它们的注释数量。

----------------------------
| MessageId | comment_count|
----------------------------
| 1234      | 34           |
----------------------------

SELECT bm.MessageId, count(bc.CommentId) as comment_count
FROM blog_comments bc, blog_message bm
WHERE bm.MessageId = bc.MessageId
GROUP BY bm.MessageId

如果您希望作者和AddedDate将其添加到SELECT语句(即SELECT bm.MessageId, count(bc.CommentId) as comment_count, bm.AddedDate, bm.Author)。

答案 1 :(得分:0)

尝试以下

SELECT 
    bm.MessageID, Count(bc.CommentID) as Cnt, Title, Username, AddedDate
FROM blog_message bm
LEFT OUTER JOIN blog_comments bc
     ON bm.MessageID = bc.MessageID
GROUP BY bm.MessageID,Title, Username, AddedDate