首页 > 解决方案 > 错误代码:1054:“on 子句”中的未知列“Orders.Customer_ID”

问题描述

即使没有显示任何语法错误,我也会不断收到此错误。

我制作了两个表,即“客户”和“订单”,当我尝试使用下面在 mySQL Workbench 中给出的 FULL JOIN 时。

SELECT DATE,NAME,Order_Price,Delivery_Address
FROM Orders
FULL JOIN Customers
ON Orders.Customer_ID = Customers.Customer_ID;

请查看我的两个表的链接截图:-

客户表

在此处输入图像描述

订单表

在此处输入图像描述

它显示错误 1054。

标签: mysqlsqlmysql-workbenchmysql-error-1054

解决方案


FULL [OUTER] JOIN 在 MySQL 中不是一个东西,因此您的查询被误解如下:

SELECT date
     , name
     , order_price
     , delivery_address
  FROM orders full
  JOIN customers 
   ON orders.Customer_ID = Customers.Customer_ID;

...其中 full 是订单的别名。如果将最后一行更改为...

ON full.Customer_ID = Customers.Customer_ID;

......它会工作; 它只是不会返回您想要的结果。但是 MySQL 中 FULL OUTER JOIN 的替代方案在其他地方被广泛讨论,所以我将把它留在那里。


推荐阅读