因此我尝试列出部门位置、与每个部门关联的项目名称以及每个项目的员 worker 数。
有一个DeptLocations表(属性:Dnum,DLoc)
一个项目表(属性:PName, Pnum, PLoc, DNum)
Employee 表(属性:FNAME、M、LNAME、SSN、BDATE、ADDRESS、S、SALARY、SUPERSSN、DNO)
还有一个 Works_On 表(属性:ESSN、PNO、HOURS)。
这是我的 SQL 查询:
select DeptLocations.DLocation, Project.PName, count(ESSN)
from Works_On, DeptLocations, Project, Department
where DeptLocations.DLocation = Project.PLocation and Project.PNumber = Works_On.PNo
出于某种原因,它只产生 1 条记录,而显然应该有更多。任何帮助都会很棒。
最佳答案
您需要添加 group by
子句 - 因为您使用了聚合函数:
select
DeptLocations.DLocation,
Project.PName,
count(ESSN)
from
Works_On
inner join Project on Project.PNumber = Works_On.PNo
inner join DeptLocations on DeptLocations.DLocation = Project.PLocation
group by
DeptLocations.DLocation, Project.PName
注意:最好使用显式 join
而不是逗号分隔的 join
。
关于mysql - 来自 SQL 查询的错误记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095003/