为什么不使用子查询时出现操作数应包含 1 列错误?

分享于2022年07月17日 group-by inner-join mysql select sql 问答
【问题标题】:为什么不使用子查询时出现操作数应包含 1 列错误?(Why does operand should contain 1 column(s) error appear when I don't use a subquery?)
【发布时间】:2022-01-25 13:36:03
【问题描述】:

我正在尝试运行这个 MYSQL 查询:

SELECT COMPANY.COMPANY_CODE, COUNT(LEAD_MANAGER.LEAD_MANAGER_CODE), COMPANY.FOUNDER
FROM COMPANY INNER JOIN LEAD_MANAGER
WHERE COMPANY.COMPANY_CODE = LEAD_MANAGER.COMPANY_CODE
GROUP BY(COMPANY.COMPANY_CODE, COMPANY.FOUNDER);

我收到的错误是:

ERROR 1241 (21000) at line 1: Operand should contain 1 column(s)

我不明白为什么会出现此错误,因为根据我所做的研究,出现此错误是因为当 SQL 只需要一列时,子查询返回多于一列。但是,我的代码没有使用子查询。


【解决方案1】:

ON 正确连接并删除 GROUP BY 周围的括号

SELECT COMPANY.COMPANY_CODE, 
       COUNT(LEAD_MANAGER.LEAD_MANAGER_CODE), 
       COMPANY.FOUNDER
FROM COMPANY 
INNER JOIN LEAD_MANAGER ON COMPANY.COMPANY_CODE = LEAD_MANAGER.COMPANY_CODE
GROUP BY COMPANY.COMPANY_CODE, 
         COMPANY.FOUNDER