MySQL SUM 和 WHERE 只给出一个结果

MySQL SUM and WHERE gives just single result

我在同时使用 WHERE 和 COUNT 时遇到问题。我有 3 个表:T1 和 T2 以及 T3 t1.id 和 t2.id.

我需要打印 T1 中具有特定城市名称的所有结果,并计算有多少员工在该项目上工作。所以我试过了

SELECT t1.name, COUNT(t3.idP)
from t3
INNER JOIN t1 ON t1.idP = t3.idP
INNER JOIN t2 ON t2.idE = t3.idE
WHERE t2.city = 'SOME CITY NAME'

结果只是第一个项目名称和所有员工的数量。如果我删除 COUNT 我可以看到那个城市的所有项目,或者如果我删除 WHERE 我可以看到每个项目中的员工数量。但是当同时拥有 COUNT 和 WHERE 时,我只得到第一个项目和所有项目员工的数量。

当您将普通列 (t1.name) 与聚合函数 (COUNT(t3.idP)) 混合使用时,您需要使用 GROUP BY.

SELECT t1.name, COUNT(t3.idP)
from t3
INNER JOIN t1 ON t1.idP = t3.idP
INNER JOIN t2 ON t2.idE = t3.idE
WHERE t2.city = 'SOME CITY NAME'
GROUP BY t1.name