运行连接语句时出现错误“不是唯一表/别名'Customer'”。我想显示我拥有的所有信息。我研究了JOIN语句,但找不到错误所在。

    SELECT Customer.CustomerID, Customer.FirstName, Customer.LastName,     Customer.StreetAddress,Customer.City,Customer.State,Customer.Zipcode, Customer.HomePhone,Customer.MobilePhone,Customer.OtherPhone, Pizza.PizzaID,
Pizza.PizzaName, Pizza.Description, Pizza.UnitPrice, OrderInformation.OrderID, OrderInformation.OrderDate, OrderItem.Quantity


 FROM Customer

 JOIN OrderInformation ON OrderInformation.OrderID = OrderItem.OrderID
 JOIN Pizza ON Pizza.PizzaID = OrderItem.PizzaID
 JOIN Customer ON Customer.CustomerID = OrderInformation.CustomerID;

最佳答案

SELECT
...
FROM Customer
...
JOIN Customer


您选择FROM Customer然后执行JOIN Customer,这意味着您现在有两个Customer实例。当您引用Customer.CustomerID之类的内容时,查询将不知道您所引用的Customer表的哪个迭代。

如果实际上需要对同一表的两个引用,则可以给一个别名。但是,由于您引用的是OrderItem表,但从未引用JOIN或选择FROM表,所以我有一种直觉,认为这些Customer表之一应该是OrderItem。也许像这样...

SELECT ...

FROM OrderItem

JOIN OrderInformation ON OrderInformation.OrderID = OrderItem.OrderID
JOIN Pizza ON Pizza.PizzaID = OrderItem.PizzaID
JOIN Customer ON Customer.CustomerID = OrderInformation.CustomerID;

关于mysql - 不是唯一表/别名-SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40251851/

10-12 00:12
查看更多