Mysql 当联接表的主键为多列组合时,如何选择联接表的COUNT()?
我试图在sql中连接两个表,并获取第二个表的计数。第二个表有几列,其中三列一起作为主键。我的查询开始于: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服务器版本,以便使用正确的语
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
子句