SQL查询中的记录不正确

时间:2019-03-11 03:50:41

标签: mysql sql

因此,我试图列出部门位置,与每个部门相关的项目名称以及在每个项目上工作的员工人数。

有一个DeptLocations表(属性:Dnum,DLoc)

项目表(属性:PName,Pnum,PLoc,DNum)

Employee表(属性:FNAME,M,LNAME,SSN,BDATE,ADDRESS,S,SALARY,SUPERSSN,DNO)

和一个Works_On表(属性:ESSN,PNO,小时)。

这是我的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条记录,而显然应该有更多记录。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

您需要添加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