首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用组时出现的无效表达式错误。

使用组时出现的无效表达式错误。
EN

Stack Overflow用户
提问于 2014-08-08 02:34:14
回答 1查看 72关注 0票数 0

我有两张桌子。

  • Employee table有两个属性.(employee_ID (PK), office_id)
  • Office table有两个属性。(office_id (PK), location)

我需要每个办公室的雇员人数。

因此,我编写了以下查询。

代码语言:javascript
复制
SELECT COUNT(E.EMPLOYEE_ID), O.LOCATION
 FROM REALSTATE.EMPLOYEE AS E, REALSTATE.OFFICE AS O 
 WHERE E.OFFICE_ID=O.OFFICE_ID
 GROUP BY E.OFFICE_ID 

我得到以下错误。“Column reference 'O.LOCATION' is invalid, or is part of an invalid expression

EN

回答 1

Stack Overflow用户

发布于 2014-08-08 02:43:40

执行组BY时,SELECT中的所有内容都必须是聚合或组BY。将COUNT和OFFICE_ID移到子查询中,并将它们连接回主表。

您必须检查字段名,在EMPLOYEE中,OFFICE OFFICE_ID上的字段名似乎不太一致,但这应该适合您。

代码语言:javascript
复制
SELECT ECount, O.LOCATION
FROM (SELECT COUNT(E.EMPLOYEE_ID) as ECount, E.OFFICE
      FROM REALSTATE.EMPLOYEE AS E
      GROUP BY OFFICE) as C
INNER JOIN REALSTATE.OFFICE AS O on C.OFFICE=O.OFFICE_ID

基本的前提是构建一个中间表(C),该表具有office以及其中有多少人,并将该表重新连接到OFFICE,以解析与该ID关联的office名称。

编辑:@Gordon是正确的,当然,MySQL确实允许这种不规范的行为,为鲱鱼感到抱歉。但是,尝试单独在圆括号内运行该部分,并使其运行,然后将其重新放入整个查询中,并使其运行,当所有这些操作正常时,您可以将其压缩为较短的符号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25195273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档