运行连接语句时出现错误“不是唯一表/别名'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/