MySQL报错ERROR 1066 (42000):表/别名'Order1'不唯一原因咨询
错误原因分析
这条SQL报错的核心原因是表Order1被重复引用,问题出在表的引用方式混用:
FROM子句里用逗号同时列出了Customer,Product,Order1,Order_line四个表,这里已经包含了Order1;- 后续又通过
INNER JOIN再次引用Order1,数据库无法区分这两次引用的Order1,因此抛出ERROR 1066 (42000): Not unique table/alias: 'Order1'错误。
另外你的关联逻辑也存在明显错误:
Order1.Order_ID = customer.Costumer_ID逻辑不合理,订单ID和客户ID不应该直接关联;Order_line.Order_ID = Product.Product_ID同样逻辑错误,订单行应该关联订单表的订单ID,产品表应该和订单行的产品ID关联。
正确写法建议统一使用JOIN语法,示例如下:
SELECT customer.Costumer_name FROM Customer INNER JOIN Order1 ON Order1.Customer_ID = customer.Costumer_ID INNER JOIN Order_line ON Order_line.Order_ID = Order1.Order_ID INNER JOIN Product ON Product.Product_ID = Order_line.Product_ID;
内容的提问来源于stack exchange,提问作者minusOneXzero
相关产品推荐
相关产品推荐

