Mysql 当联接表的主键为多列组合时,如何选择联接表的COUNT()?

Mysql 当联接表的主键为多列组合时,如何选择联接表的COUNT()?,mysql,join,count,Mysql,Join,Count,我试图在sql中连接两个表,并获取第二个表的计数。第二个表有几列,其中三列一起作为主键。我的查询开始于: SELECT times.*, COUNT(paylog.*) AS `total` FROM times LEFT JOIN paylog ON paylog.type = 'work' AND paylog.targetID = times.id 我因为在count()参数中使用表名而受到谴责: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语

我试图在sql中连接两个表,并获取第二个表的计数。第二个表有几列,其中三列一起作为主键。我的查询开始于:

SELECT times.*, COUNT(paylog.*) AS `total` 
FROM times 
LEFT JOIN paylog 
ON paylog.type = 'work' 
AND paylog.targetID = times.id 
我因为在count()参数中使用表名而受到谴责:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近“*)的部分为
total
从时代 左键连接第1行的“paylog”


如果paylog表中只有一个唯一的列,我可以按照这里给出的建议进行操作:但事实并非如此。如何选择paylog表上所有连接行的计数?我需要让它成为一个连接,因为它当前通过一个子查询获取计数,这使得它有点慢

Count将只返回列中非空值的数量或结果集中的行数,用于
Count(*)
的特殊情况。换句话说,
count(paylog.*)
不是有效的SQL

您不需要在paylog表中使用唯一的列来进行有效计数,任何列都可以。如果连接成功,它将增加计数,否则列的值将为null,计数保持不变

如果您试图获取paylog中每行的链接行数,那么您还需要一个
groupby times.id
子句