【问题标题】:Incorrect records from SQL query来自 SQL 查询的错误记录
【发布时间】:2019-08-01 08:42:03
【问题描述】:

所以我试图列出部门位置、与每个部门关联的项目名称以及从事每个项目的员工人数。

有一个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 和内部连接 ​​Demo

标签: mysql sql


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    相关资源
    最近更新 更多