首页 > 解决方案 > 错误代码:1054 'on 子句'中的未知列

问题描述

我正在尝试运行此查询:

SELECT name
FROM customers Left Join(
SELECT customerID as quantity
FROM ORDERS NATURAL JOIN ORDERCONTENTS
GROUP BY customerID)AS quantity
ON customers.customerID=quantity.customerID
ORDER BY name; 

每次我运行它我都会收到这个错误:

SELECT* FROM customers LEFT JOIN( SELECT customer AS quantity FROM ORDERS 
NATURAL JOIN ORDERCONTENTS GROUP BY customerl... 

Error Code: 1054. Unknown column 'quantity.customerID' in 'on clause'

我尝试了不同的连接和列,但它继续返回相同的错误。任何帮助表示赞赏,谢谢。

编辑:为了澄清这是一个家庭作业问题,测试函数等的使用以及子查询。目标是:

检索每个客户的姓名以及他们订购了多少比萨(如果没有订购比萨,则为 NULL)。

这个可怕的模板中提供了问题本身,我只能控制:

1) 选择了什么

2)第一个FROM(客户LEFT JOIN)

3) GROUP BY 的输入。

不幸的是,我无法编辑以下任何内容:

 FROM ORDERS NATURAL JOIN ORDERCONTENTS

 as quantity
 ON customers.customerID=quantity.customerID
 ORDER BY name;

对最初缺乏信息表示歉意

标签: mysqlsql

解决方案


查看您的代码,您将订单表中的 customerID 列命名为数量

因此,您只需要将 ON 子句更改为

ON customers.customerID=quantity.quantity 

我还建议将列名更改为数量以外的名称以避免歧义,因为您将 2 个事物命名为“数量”。


推荐阅读