从左连接SQL中选择时的COUNT(*)语法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从左连接SQL中选择时的COUNT(*)语法相关的知识,希望对你有一定的参考价值。
我有一个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
来检索用户数量,但是我收到了错误;什么是正确的语法?
答案
语法看起来应该更像:
SELECT a.?, COUNT(b.?) as total_users
FROM a LEFT JOIN
b
ON . . .
GROUP BY a.?
另一答案
你需要一个小组
选择a.id_user,b.id_post,来自......组的count(1)由a.id_user,b.id_post
另一答案
你可以Count([some specific field])
或Count(*)
,但正如戈登林诺夫正确地说,你通常不能使用Count(alias.*)
Count()
函数需要一个表达式(单个值)。对于表达式不为NULL的每一行,将计算该行。 Count(*)
是返回结果集中行数的特殊情况。
另一答案
以下返回所有帖子并计算以某种方式加入这些帖子的用户数量(在您的问题中没有关于此的信息)
SELECT
a.id_user,
b.id_post,
COUNT(DISTINCT a.id_user) as total_users
以上是关于从左连接SQL中选择时的COUNT(*)语法的主要内容,如果未能解决你的问题,请参考以下文章