2012-07-20 28 views
0

我建立博客的學校,我想顯示評論數爲取得每個線程。不過我有點失去了如何實現這一目標的任何幫助將是巨大的謝謝!我如何在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表格式 評論數顯示|標題|用戶名|創建

回答

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)。

+0

非常感謝你:) – user996502 2012-07-20 03:25:49

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 
+0

遺憾沒有工作:( – user996502 2012-07-20 03:26:01

相關問題