Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 联接中的多次计数_Mysql_Sql_Count_Left Join_Mysql Workbench - Fatal编程技术网

Mysql 联接中的多次计数

Mysql 联接中的多次计数,mysql,sql,count,left-join,mysql-workbench,Mysql,Sql,Count,Left Join,Mysql Workbench,我试图在mysql查询中从一个具有左连接的表中获取ID数。当我有一个计数时,它工作得很好。但是,当我尝试添加一个额外的计数时,第二个计数的结果与第一个计数的结果相同。因此,如何修复此查询,使其具有两个计数。 注:第一次计数结果应基于连接条件 第二次计数结果应为不基于联接的全部计数 SELECT COUNT(*) 对所有行进行计数 SELECT COUNT(column_name) 仅统计该特定列中非NULL的值 因此,在您的情况下,第一个计数应该是count(联接表中的一列),第二个计数应该

我试图在mysql查询中从一个具有左连接的表中获取ID数。当我有一个计数时,它工作得很好。但是,当我尝试添加一个额外的计数时,第二个计数的结果与第一个计数的结果相同。因此,如何修复此查询,使其具有两个计数。 注:第一次计数结果应基于连接条件 第二次计数结果应为不基于联接的全部计数

SELECT COUNT(*)
对所有行进行计数

SELECT COUNT(column_name)
仅统计该特定列中
NULL
的值

因此,在您的情况下,第一个计数应该是
count(联接表中的一列)
,第二个计数应该是
count(*)

对于特殊情况,也可以使用布尔表达式。比如说

SELECT SUM(my_column = 'foo')

只计算my_列中的值为
foo
的值,因为布尔表达式如果为true,则返回1,否则返回0。

您可以发布代码/查询吗?让您轻松地获得帮助:这似乎是一个常见错误,人们希望某些子查询的某些联接,每个联接可能涉及不同的键,每个都可能涉及连接和/或聚合,但它们错误地尝试执行所有连接,然后执行所有聚合或在以前的聚合上进行聚合。请在代码问题中给出一个--cut&paste&runnable代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。这包括您能给出的最少代码,即您显示为OK的代码,由您显示为not OK的代码扩展。(调试基础。)用于包含DBMS/product和DDL的SQL,其中包括约束和索引以及表格格式的基表初始化。请使用标准语言和标点符号。