选择具有三个以上表的计数查询

时间:2016-06-01 10:51:32

标签: mysql

我有以下查询

SELECT *, (SELECT COUNT(*) FROM post, comments WHERE comments.postid = post.id) as totalcom 
FROM post, category 
WHERE post.categoryid = category.catid

然后它返回整个表这正是我需要的但是totalcom对所有帖子显示相同的总数,它应该显示对帖子的评论计数,如果结果0那么应该显示空白或null等等。

请帮忙

1 个答案:

答案 0 :(得分:0)

您必须将 correlation 用于主查询的post表:

SELECT *, 
       (SELECT COUNT(*) 
        FROM comments 
        WHERE comments.postid = post.id) as totalcom 
FROM post 
JOIN category ON post.categoryid = category.catid

注意:始终使用上述查询中的现代显式 JOIN语法,而不是旧式隐式语法