我正在使用C#Webforms构建一个博客引擎,我有以下代码可以选择所有当前的博客帖子,这意味着它们应该被显示,并且每个博客文章的所有评论的数量都会很好。
SELECT PostID, PostTitle, PostDate, PostTeaser, Count(CommentID) AS CountOfCommentID, PostCurrent
FROM TBLBlogPost
INNER JOIN TBLBlogComment ON PostID = PostCommentFK
GROUP BY PostID, PostTitle, PostDate, PostTeaser, PostCurrent
HAVING PostCurrent = 'True'
问题是它只选择至少有一条评论的博文。
有谁知道如何解决这个问题?
答案 0 :(得分:5)
然后你应该使用LEFT JOIN,而不是INNER JOIN
SELECT PostID, PostTitle, PostDate, PostTeaser, Count(CommentID) AS CountOfCommentID, PostCurrent
FROM TBLBlogPost
LEFT JOIN TBLBlogComment ON PostID = PostCommentFK
GROUP BY PostID, PostTitle, PostDate, PostTeaser, PostCurrent
HAVING PostCurrent = 'True'
INNER JOIN
表示匹配表必须匹配,否则它不会填充结果集。 LEFT JOIN
表示如果未进行匹配,则会使用NULL
Here是不同SQL连接的良好直观表示。