Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 where子句不是将记录缩小到我指定的范围_Mysql_Sql_Count_Where_Mysql Workbench - Fatal编程技术网

Mysql where子句不是将记录缩小到我指定的范围

Mysql where子句不是将记录缩小到我指定的范围,mysql,sql,count,where,mysql-workbench,Mysql,Sql,Count,Where,Mysql Workbench,有一些表格,我试图把某个办公室的记录数加起来 SQL: 因此,希望办公室的员工=10人。因此,该字段应显示为3的“员工人数” 相反,它将所有记录相加并显示“9” 办公室1的ID为10 office 2的ID为20这两个表之间一定存在某种关系。职员桌上有类似officeId的东西吗 select count(*) from staff,office where office.office_id=staff.office_id and office.office_id=10; 第一个条件是链接表,

有一些表格,我试图把某个办公室的记录数加起来

SQL:

因此,希望办公室的员工=10人。因此,该字段应显示为3的“员工人数”

相反,它将所有记录相加并显示“9”

办公室1的ID为10
office 2的ID为20

这两个表之间一定存在某种关系。职员桌上有类似officeId的东西吗

select count(*) from staff,office where office.office_id=staff.office_id and office.office_id=10;

第一个条件是链接表,第二个条件是过滤表。

您必须连接两个表才能得到想要的结果,例如:

   SELECT  COUNT(*) AS "Number of employees" FROM staff, office
   WHERE staff.office_id = office.office_id and office.office_id  =10;

从staff,office中选择COUNT(*)作为“Number of employees”,该语法是否有效。。。。?同一张桌子里有两张桌子?什么意思?它工作,并显示“9”。你正在进行笛卡尔连接,因为你没有on条件。因此,一个表中的每一行都与第二个表中的每一行相乘。你需要类似于a.id=b.id的连接b。这正是我的意思,他是从a,b写的,而不是从内部连接b写的。哦,谢谢,我绞尽脑汁想了很久,这就解决了。我还想提一下,如果您在staff表中已经有了officeId,您只需执行以下操作:从officeId=10的staff中选择count(*);
   SELECT  COUNT(*) AS "Number of employees" FROM staff, office
   WHERE staff.office_id = office.office_id and office.office_id  =10;