我如何在GridView显示从另一个表的计数?
问题描述:
我建立博客的学校,我想显示评论数为取得每个线程。不过我有点失去了如何实现这一目标的任何帮助将是巨大的谢谢!我如何在GridView显示从另一个表的计数?
我有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
INT表格式 评论数显示|标题|用户名|创建
答
下面的日期是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
)。
答
请尝试以下
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
+0
遗憾没有工作:( – user996502 2012-07-20 03:26:01
非常感谢你:) – user996502 2012-07-20 03:25:49