mysql - 来自 SQL 查询的错误记录

标签 mysql sql

因此我尝试列出部门位置、与每个部门关联的项目名称以及每个项目的员 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/

相关文章:

mysql存储过程比标准查询慢20倍

使用/cURL 将数据发布到数据库时的 PHP/SQL 问题

php - pdo 总是返回 false

java - 更新sql时MYSQL锁等待超时超出错误

mysql - 仅在日期时间字段 MYSQL 中用于日期的 WHERE 子句

MySQL 查询采用笛卡尔积

mysql - 使用 GROUP BY 和 ORDER BY 的 mysql 查询的奇怪结果

mysql - 如何有效地创建汇总表

sql - 有没有办法根据其中一列值添加表约束?

Mysql关于多列分离索引的问题