从Left JoinSQL中选择时的COUNT(*)语法

时间:2018-03-03 13:54:36

标签: sql count left-join

我有LEFT JOIN查询

SELECT 
    a.id_user,b.id_post, COUNT(a.*) as total_users
FROM 
    posts as b
LEFT JOIN .....
LEFT JOIN .....
WHERE ....
ORDER BY .....
GROUP BY 
    a._id_user
LIMIT 3,10

如果我使用COUNT(a.*) AS total_users来检索用户数,但我收到错误;什么是正确的语法?

4 个答案:

答案 0 :(得分:0)

语法看起来应该更像:

SELECT a.?, COUNT(b.?) as total_users
FROM a LEFT JOIN
     b
     ON . . .
GROUP BY a.?

答案 1 :(得分:0)

你需要一个小组

选择a.id_user,b.id_post,count(1) 从..... 由a.id_user分组,b.id_post

答案 2 :(得分:0)

您可以Count([some specific field])Count(*),但正如Gordon Linoff所说,您通常不能使用Count(alias.*)

Count()函数需要一个表达式(单个值)。对于表达式不为NULL的每一行,将计算该行。 Count(*)是返回结果集中行数的特殊情况。

答案 3 :(得分:0)

关注返回所有帖子并计算以某种方式加入这些帖子的用户数量(在您的问题中没有相关信息)

SELECT 
    a.id_user,
    b.id_post,
    COUNT(DISTINCT a.id_user) as total_users
相关问题